/** * Create a new column * * @param index * index * @param name * name * @param type * data type * @param notNull * not null flag * @param defaultValue * default value * @return attributes column */ public static AttributesColumn createColumn(int index, String name, GeoPackageDataType type, boolean notNull, Object defaultValue) { return createColumn(index, name, type, null, notNull, defaultValue); }
/** * Get or create the extension * * @return extension */ public Extensions getOrCreate() { // Create the attributes table if (!geoPackage.isTable(TABLE_NAME)) { AttributesColumn propertyColumn = AttributesColumn.createColumn(1, COLUMN_PROPERTY, GeoPackageDataType.TEXT, true, null); AttributesColumn valueColumn = AttributesColumn.createColumn(2, COLUMN_VALUE, GeoPackageDataType.TEXT, false, null); List<AttributesColumn> additionalColumns = new ArrayList<>(); additionalColumns.add(propertyColumn); additionalColumns.add(valueColumn); List<UserUniqueConstraint<AttributesColumn>> uniqueConstraints = new ArrayList<>(); uniqueConstraints.add(new UserUniqueConstraint<AttributesColumn>( propertyColumn, valueColumn)); geoPackage.createAttributesTableWithId(TABLE_NAME, additionalColumns, uniqueConstraints); } Extensions extension = getOrCreate(EXTENSION_NAME, TABLE_NAME, null, EXTENSION_DEFINITION, ExtensionScopeType.READ_WRITE); return extension; }
columns.add(AttributesColumn.createColumn(columnNumber++, TEXT_COLUMN, GeoPackageDataType.TEXT, false, "")); columns.add(AttributesColumn.createColumn(columnNumber++, REAL_COLUMN, GeoPackageDataType.REAL, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, BOOLEAN_COLUMN, GeoPackageDataType.BOOLEAN, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, BLOB_COLUMN, GeoPackageDataType.BLOB, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, INTEGER_COLUMN, GeoPackageDataType.INTEGER, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, TEXT_LIMITED_COLUMN, GeoPackageDataType.TEXT, (long) UUID .randomUUID().toString().length(), false, null)); columns.add(AttributesColumn .createColumn(columnNumber++, BLOB_LIMITED_COLUMN, GeoPackageDataType.BLOB, (long) UUID.randomUUID() .toString().getBytes().length, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, DATE_COLUMN, GeoPackageDataType.DATE, false, null)); columns.add(AttributesColumn.createColumn(columnNumber++, DATETIME_COLUMN, GeoPackageDataType.DATETIME, false, null));
columns.add(AttributesColumn.createColumn(6, "test_text_limited", GeoPackageDataType.TEXT, 5L, false, null)); columns.add(AttributesColumn.createColumn(7, "test_blob_limited", GeoPackageDataType.BLOB, 7L, false, null)); columns.add(AttributesColumn.createColumn(8, "test_date", GeoPackageDataType.DATE, false, null)); columns.add(AttributesColumn.createColumn(9, "test_datetime", GeoPackageDataType.DATETIME, false, null)); columns.add(AttributesColumn.createColumn(1, "test_text", GeoPackageDataType.TEXT, false, "")); columns.add(AttributesColumn.createColumn(2, "test_real", GeoPackageDataType.REAL, false, null)); columns.add(AttributesColumn.createColumn(3, "test_boolean", GeoPackageDataType.BOOLEAN, false, null)); columns.add(AttributesColumn.createColumn(4, "test_blob", GeoPackageDataType.BLOB, false, null)); columns.add(AttributesColumn.createColumn(5, "test_integer", GeoPackageDataType.INTEGER, false, null));