/** * Create a new primary key column * * @param index * index * @param name * name * @return attributes column */ public static AttributesColumn createPrimaryKeyColumn(int index, String name) { return new AttributesColumn(index, name, GeoPackageDataType.INTEGER, null, true, null, true); }
/** * 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); }
/** * {@inheritDoc} */ @Override public AttributesTable createAttributesTable(String tableName, String idColumnName, List<AttributesColumn> additionalColumns, List<UserUniqueConstraint<AttributesColumn>> uniqueConstraints) { if (idColumnName == null) { idColumnName = "id"; } List<AttributesColumn> columns = new ArrayList<AttributesColumn>(); columns.add(AttributesColumn.createPrimaryKeyColumn(0, idColumnName)); if (additionalColumns != null) { columns.addAll(additionalColumns); } return createAttributesTable(tableName, columns, uniqueConstraints); }
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)); if (!column.isPrimaryKey()) { if (!column.isNotNull()) { if (Math.random() < 0.2) { continue; switch (column.getDataType()) { if (column.getMax() != null && text.length() > column.getMax()) {
if (!attributesColumn.isPrimaryKey()) { GeoPackageDataType dataType = attributesColumn.getDataType(); .getIndex())) { if (Math.random() < .5) { attributesRow.setValue( attributesColumn.getIndex(), updatedDate); } else { attributesRow.setValue( attributesColumn.getIndex(), converter.stringValue(updatedDate)); if (attributesColumn.getMax() != null) { if (updatedLimitedString == null) { if (updatedString.length() > attributesColumn .getMax()) { updatedLimitedString = updatedString .substring(0, attributesColumn .getMax() .intValue()); } else { attributesColumn.getIndex(), updatedLimitedString); } else {
if (column.isPrimaryKey()) { try { newRow.setValue(column.getName(), 10); TestCase.fail("Set primary key on new row"); } catch (GeoPackageException e) { newRow.setValue(column.getName(), attributesRow.getValue(column.getName())); if (column.getDataType() == GeoPackageDataType.BLOB) { byte[] blob1 = (byte[]) queryAttributesRow2 .getValue(column.getName()); byte[] blob2 = (byte[]) copyRow.getValue(column .getName()); if (blob1 == null) { TestCase.assertNull(blob2); .getValue(column.getName()), copyRow .getValue(column.getName())); if (column.isPrimaryKey()) { TestCase.assertNotSame(queryAttributesRow2 .getValue(column.getName()), queryAttributesRow3.getValue(column .getName())); } else if (column.getDataType() == GeoPackageDataType.BLOB) { byte[] blob1 = (byte[]) queryAttributesRow2 .getValue(column.getName()); byte[] blob2 = (byte[]) queryAttributesRow3
AttributesColumn column = attributesRow.getTable().getColumns() .get(i); GeoPackageDataType dataType = column.getDataType(); TestCase.assertEquals(i, column.getIndex()); TestCase.assertEquals(columns[i], attributesRow.getColumnName(i)); TestCase.assertEquals(i, attributesRow.getColumnIndex(columns[i])); TestUtils.validateIntegerValue(value, column.getDataType()); break; TestUtils.validateFloatValue(value, column.getDataType()); break;
AttributesCursor ars = relatedDao.queryForAll(); while (ars.moveToNext()) { long relatedId = ars.getLong(pkColumn2.getIndex()); List<Long> baseIds = rte.getMappingsForRelated( extendedRelation, relatedId);
attributesRelation.getBaseTableName()); TestCase.assertEquals(attributesDao.getTable().getPkColumn() .getName(), attributesRelation.getBasePrimaryColumn()); TestCase.assertEquals(simpleDao.getTableName(), attributesRelation.getRelatedTableName()); simpleRelation.getBaseTableName()); TestCase.assertEquals(attributesDao.getTable().getPkColumn() .getName(), simpleRelation.getBasePrimaryColumn()); TestCase.assertEquals(simpleDao.getTableName(), simpleRelation.getRelatedTableName());
for (AttributesColumn column : attributesRow.getTable() .getColumns()) { if (!column.isPrimaryKey() && column.getDataType() != GeoPackageDataType.BLOB) { if (column1 == null) { column1 = column; .getName()); Class<?> column1ClassType = column1.getDataType() .getClassType(); boolean column1Decimal = column1ClassType == Double.class .000001); } else if (column1Value instanceof Date) { column1AttributesValue = new ColumnValue(DateConverter.converter(column1.getDataType()).stringValue((Date) column1Value)); } else { column1AttributesValue = new ColumnValue(column1Value); cursor = dao.queryForEq(column1.getName(), column1AttributesValue); TestCase.assertTrue(cursor.getCount() > 0); queryAttributesRow = cursor.getRow(); TestCase.assertEquals(column1Value, queryAttributesRow.getValue(column1.getName())); if (!found) { found = attributesRow.getId() == queryAttributesRow fieldValues.put(column1.getName(), column1AttributesValue); Object column2Value = null;
/** * Create a new column * * @param index * index * @param name * name * @param type * data type * @param max * max value * @param notNull * not null flag * @param defaultValue * default value * @return attributes column */ public static AttributesColumn createColumn(int index, String name, GeoPackageDataType type, Long max, boolean notNull, Object defaultValue) { return new AttributesColumn(index, name, type, max, notNull, defaultValue, false); }
/** * 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; }
/** * {@inheritDoc} */ @Override protected AttributesColumn createColumn(AttributesResultSet result, int index, String name, String type, Long max, boolean notNull, int defaultValueIndex, boolean primaryKey) { GeoPackageDataType dataType = getDataType(type); Object defaultValue = result.getValue(defaultValueIndex, dataType); AttributesColumn column = new AttributesColumn(index, name, dataType, max, notNull, defaultValue, primaryKey); return column; }
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));
/** * {@inheritDoc} */ @Override protected AttributesColumn createColumn(AttributesCursor cursor, int index, String name, String type, Long max, boolean notNull, int defaultValueIndex, boolean primaryKey) { GeoPackageDataType dataType = getDataType(type); Object defaultValue = cursor.getValue(defaultValueIndex, dataType); AttributesColumn column = new AttributesColumn(index, name, dataType, max, notNull, defaultValue, primaryKey); return column; }