/**
         * Parses a single table definition
         *
         * @param tableDefinitionText
         * @return
         */
        protected static SimpleTableDef parseTableDef(String tableDefinitionText)
        {
            if (tableDefinitionText == null || tableDefinitionText.Trim().IsEmpty())
            {
                return(null);
            }

            int startColumnSection = tableDefinitionText.IndexOf("(");

            if (startColumnSection == -1)
            {
                throw new ArgumentException("Failed to parse table definition: " + tableDefinitionText
                                            + ". No start parenthesis found for column section.");
            }

            int endColumnSection = tableDefinitionText.IndexOf(")", startColumnSection);

            if (endColumnSection == -1)
            {
                throw new ArgumentException("Failed to parse table definition: " + tableDefinitionText
                                            + ". No end parenthesis found for column section.");
            }

            String tableName = tableDefinitionText.Substring(0, startColumnSection).Trim();

            if (tableName.IsEmpty())
            {
                throw new ArgumentException("Failed to parse table definition: " + tableDefinitionText
                                            + ". No table name found.");
            }

            String columnSection = tableDefinitionText.Substring(startColumnSection + 1, endColumnSection);

            String[]          columnDefinitionTexts = columnSection.Split(',');
            List <String>     columnNames           = new List <String>();
            List <ColumnType> columnTypes           = new List <ColumnType>();

            foreach (String columnDefinition_item in columnDefinitionTexts)
            {
                string columnDefinition = columnDefinition_item.Trim();
                if (!columnDefinition.IsEmpty())
                {
                    int        separator        = columnDefinition.LastIndexOf(" ");
                    String     columnName       = columnDefinition.Substring(0, separator).Trim();
                    String     columnTypeString = columnDefinition.Substring(separator).Trim();
                    ColumnType columnType       = ColumnTypeImpl.valueOf(columnTypeString);

                    columnNames.Add(columnName);
                    columnTypes.Add(columnType);
                }
            }
            return(new SimpleTableDef(tableName, columnNames.ToArray(),
                                      columnTypes.ToArray())); // new ColumnType[columnTypes.size()]));
        } // parseTableDef()
Ejemplo n.º 2
0
        } // addObservation()

        public void addObservation(Type valueType)
        {
            ColumnType columnType = ColumnTypeImpl.convertColumnType(valueType);

            addObservation(columnType);
        }