/** * Determine if the column is a non nullable simple type: TEXT, INTEGER, or * REAL * * @param column * user column * @return true if a simple column */ public static boolean isSimple(UserColumn column) { return column.isNotNull() && isSimple(column.getDataType()); }
/** * Validate that Simple Attributes columns to verify at least one non id * column exists and that all columns are simple data types */ private void validateColumns() { List<UserCustomColumn> columns = getColumns(); if (columns.size() < 2) { throw new GeoPackageException( "Simple Attributes Tables require at least one non id column. Columns: " + columns.size()); } for (UserCustomColumn column : columns) { if (!isSimple(column)) { throw new GeoPackageException( "Simple Attributes Tables only support simple data types. Column: " + column.getName() + ", Non Simple Data Type: " + column.getDataType().name()); } } }
public static List<UserCustomColumn> creatSimpleUserColumns( int startingIndex, boolean notNull) { List<UserCustomColumn> simpleUserColumns = new ArrayList<>(); int columnIndex = startingIndex; List<UserCustomColumn> allAdditionalColumns = createAdditionalUserColumns( startingIndex, notNull); for (UserCustomColumn column : allAdditionalColumns) { if (SimpleAttributesTable.isSimple(column)) { simpleUserColumns.add(UserCustomColumn.createColumn( columnIndex++, column.getName(), column.getDataType(), column.getMax(), column.isNotNull(), column.getDefaultValue())); } } return simpleUserColumns; }