/** * Create a simple attributes table with the id column and columns * * @param tableName * table name * @param idColumnName * id column name * @param columns * columns * @return simple attributes table */ public static SimpleAttributesTable create(String tableName, String idColumnName, List<UserCustomColumn> columns) { List<UserCustomColumn> tableColumns = new ArrayList<>(); tableColumns.addAll(createRequiredColumns(idColumnName)); if (columns != null) { tableColumns.addAll(columns); } return new SimpleAttributesTable(tableName, tableColumns, requiredColumns(idColumnName)); }
/** * Get the id column * * @return id column */ public UserCustomColumn getIdColumn() { return getTable().getIdColumn(); }
/** * Get a related simple attributes table DAO * * @param simpleAttributesTable * simple attributes table * @return simple attributes DAO */ public SimpleAttributesDao getSimpleAttributesDao( SimpleAttributesTable simpleAttributesTable) { return getSimpleAttributesDao(simpleAttributesTable.getTableName()); }
SimpleAttributesTable.create("simple_table", RelatedTablesUtils .createAdditionalUserColumns(SimpleAttributesTable .numRequiredColumns())); TestCase.fail("Simple Attributes Table created with nullable non simple columns"); } catch (Exception e) { SimpleAttributesTable.create("simple_table", RelatedTablesUtils .createAdditionalUserColumns( SimpleAttributesTable.numRequiredColumns(), true)); TestCase.fail("Simple Attributes Table created with non nullable non simple columns"); } catch (Exception e) { SimpleAttributesTable.create("simple_table", RelatedTablesUtils .creatSimpleUserColumns( SimpleAttributesTable.numRequiredColumns(), false)); TestCase.fail("Simple Attributes Table created with nullable simple columns"); } catch (Exception e) { .numRequiredColumns()); SimpleAttributesTable simpleTable = SimpleAttributesTable.create( "simple_table", simpleUserColumns); String[] simpleColumns = simpleTable.getColumnNames(); TestCase.assertEquals(SimpleAttributesTable.numRequiredColumns() + simpleUserColumns.size(), simpleColumns.length); UserCustomColumn idColumn = simpleTable.getIdColumn(); TestCase.assertNotNull(idColumn); TestCase.assertTrue(idColumn.isNamed(SimpleAttributesTable.COLUMN_ID)); simpleTable.getTableName()));
.numRequiredColumns()); SimpleAttributesTable simpleTable = SimpleAttributesTable.create( "simple_attributes", simpleUserColumns); .numRequiredColumns()); UserMappingTable userMappingTable = UserMappingTable.create(tableName + "_" + simpleTable.getTableName(), additionalMappingColumns); ExtendedRelation relation = relatedTables .addSimpleAttributesRelationship(tableName, simpleTable, RelatedTablesUtils.populateUserRow(simpleAttributesRow.getTable(), simpleAttributesRow, SimpleAttributesTable.requiredColumns()); DublinCoreMetadata.setValue(simpleAttributesRow, DublinCoreType.TITLE, DublinCoreType.TITLE.getName() + i);
/** * Constructor * * @param dao user custom data access object */ public SimpleAttributesDao(UserCustomDao dao) { super(dao, new SimpleAttributesTable(dao.getTable())); }
/** * 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()); } } }
/** * Get the required columns * * @return required columns */ public static List<String> requiredColumns() { return requiredColumns(null); }
/** * 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()); }
/** * Get the id column index * * @return id column index */ public int getIdColumnIndex() { return getTable().getIdColumnIndex(); }
/** * Get the id column * * @return id column */ public UserCustomColumn getIdColumn() { return getPkColumn(); }
/** * Create a simple attributes table with the columns * * @param tableName * table name * @param columns * columns * @return simple attributes table */ public static SimpleAttributesTable create(String tableName, List<UserCustomColumn> columns) { return create(tableName, null, columns); }
/** * Create the required table columns with id column name, starting at the * provided index * * @param startingIndex * starting index * @param idColumnName * id column name * @return user custom columns */ public static List<UserCustomColumn> createRequiredColumns( int startingIndex, String idColumnName) { if (idColumnName == null) { idColumnName = COLUMN_ID; } List<UserCustomColumn> columns = new ArrayList<>(); columns.add(createIdColumn(startingIndex++, idColumnName)); return columns; }
/** * Constructor * * @param dao * user custom data access object */ public SimpleAttributesDao(UserCustomDao dao) { super(dao, new SimpleAttributesTable(dao.getTable())); }
/** * Get the number of required columns * * @return required columns count */ public static int numRequiredColumns() { return requiredColumns().size(); }
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; }
/** * Get the id column index * * @return id column index */ public int getIdColumnIndex() { return getTable().getIdColumnIndex(); }
/** * Get a related simple attributes table DAO * * @param simpleAttributesTable simple attributes table * @return simple attributes DAO */ public SimpleAttributesDao getSimpleAttributesDao( SimpleAttributesTable simpleAttributesTable) { return getSimpleAttributesDao(simpleAttributesTable.getTableName()); }
/** * Get the id column * * @return id column */ public UserCustomColumn getIdColumn() { return getTable().getIdColumn(); }
/** * Validate contents * * @param simpleAttributesTable simple attributes table * @param contents contents */ private static void validateContents( SimpleAttributesTable simpleAttributesTable, Contents contents) { TestCase.assertNotNull(contents); TestCase.assertNotNull(contents.getDataType()); TestCase.assertEquals( SimpleAttributesTable.RELATION_TYPE.getDataType(), contents .getDataType().getName()); TestCase.assertEquals( SimpleAttributesTable.RELATION_TYPE.getDataType(), contents.getDataTypeString()); TestCase.assertEquals(simpleAttributesTable.getTableName(), contents.getTableName()); TestCase.assertNotNull(contents.getLastChange()); }