void init(FeatureEntry e) { super.init(e); setGeometryColumn(e.getGeometryColumn()); setGeometryType(e.getGeometryType()); setZ(e.isZ()); setM(e.isM()); }
@Override FeatureEntry copy() { FeatureEntry e = new FeatureEntry(); e.init(this); return e; } }
void init(Entry e) { setDescription(e.getDescription()); setIdentifier(e.getIdentifier()); setDataType(e.getDataType()); setBounds(e.getBounds()); setSrid(e.getSrid()); setTableName(e.getTableName()); }
@Override public void dispose() { if (file != null) { file.close(); } }
GeoPackage geopkg() { return new GeoPackage(dataStore); }
FeatureEntry createFeatureEntry(ResultSet rs) throws SQLException, IOException { FeatureEntry e = new FeatureEntry(); initEntry(e, rs); e.setGeometryColumn(rs.getString("column_name")); e.setGeometryType(Geometries.getForName(rs.getString("geometry_type_name"))); e.setZ(rs.getBoolean("z")); e.setM(rs.getBoolean("m")); return e; }
@Override public int getGeometryDimension( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { try { FeatureEntry fe = geopkg().feature(tableName); if (fe != null) { return 2 + (fe.isZ() ? 1 : 0) + (fe.isM() ? 1 : 0); } else { // fallback - shouldn't happen return super.getGeometryDimension(schemaName, tableName, columnName, cx); } } catch (IOException e) { throw new SQLException(e); } }
@Override public void initializeConnection(Connection cx) throws SQLException { GeoPackage.init(cx); }
/** * Returns a reader for the contents of a feature dataset. * * @param entry The feature entry. * @param filter Filter Filter determining what subset of dataset to return. May be <code>null * </code> to specify no filter. * @param tx Transaction object, may be <code>null</code> to specify auto commit transaction. */ public SimpleFeatureReader reader(FeatureEntry entry, Filter filter, Transaction tx) throws IOException { Query q = new Query(entry.getTableName()); q.setFilter(filter != null ? filter : Filter.INCLUDE); return Features.simple(dataStore().getFeatureReader(q, tx)); }
protected String getSpatialIndexName(FeatureEntry entry) { String spatial_index = "rtree_" + entry.getTableName() + "_" + entry.getGeometryColumn(); return spatial_index; } /**
void init(TileEntry e) { super.init(e); setTileMatricies(e.getTileMatricies()); this.tileMatrixSetBounds = e.tileMatrixSetBounds == null ? null : new ReferencedEnvelope(e.tileMatrixSetBounds); }
@Override public PreparedFilterToSQL createPreparedFilterToSQL() { GeoPkgFilterToSQL fts = new GeoPkgFilterToSQL(this); return fts; }
JDBCDataStore dataStore() throws IOException { if (dataStore == null) { synchronized (this) { if (dataStore == null) { dataStore = createDataStore(); } } } return dataStore; }
@Override public void encodeGeometryEnvelope(String tableName, String geometryColumn, StringBuffer sql) { encodeColumnName(null, geometryColumn, sql); }
@Override protected SQLDialect createSQLDialect(JDBCDataStore dataStore) { return new GeoPkgDialect(dataStore, writerConfig); }
Geometry geometry(byte[] b) throws IOException { return geometry(null, b, null, null); }
public FeatureEntry() { setDataType(DataType.Feature); }
public TileEntry() { setDataType(DataType.Tile); }