/** * 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()