public JDBCFeatureSource getAbsoluteFeatureSource(String typeName) throws IOException { ContentFeatureSource featureSource = getFeatureSource(typeName); if (featureSource instanceof JDBCFeatureSource) { return (JDBCFeatureSource) featureSource; } return ((JDBCFeatureStore) featureSource).getFeatureSource(); }
jds.createVirtualTable(vt); FeatureTypeInfo vft = cb.buildFeatureType(jds.getFeatureSource(vt.getName())); vft.getMetadata().put(FeatureTypeInfo.JDBC_VIRTUAL_TABLE, vt); cat.add(vft);
public void testBounds() throws Exception { if (!isGeographySupportAvailable()) { return; } ReferencedEnvelope env = dataStore.getFeatureSource(tname("geopoint")).getBounds(); ReferencedEnvelope expected = new ReferencedEnvelope(-110, 0, 29, 49, CRS.decode("EPSG:4326")); assertEquals(expected, env); }
public void testExposePrimaryKeyColumns() throws Exception { JDBCFeatureStore fs = (JDBCFeatureStore) dataStore.getFeatureSource(tname("noninc")); assertEquals(2, fs.getSchema().getAttributeCount()); fs = (JDBCFeatureStore) dataStore.getFeatureSource(tname("noninc")); fs.setExposePrimaryKeyColumns(true); assertEquals(3, fs.getSchema().getAttributeCount()); }
public void testGetFeatureStoreRemoveAllFeatures() throws IOException { SimpleFeatureStore road = (SimpleFeatureStore) dataStore.getFeatureSource(tname("road")); road.removeFeatures(Filter.INCLUDE); assertEquals(0, road.getFeatures().size()); }
public void testSequencedPrimaryKey() throws Exception { JDBCFeatureStore fs = (JDBCFeatureStore) dataStore.getFeatureSource(tname("seq")); assertEquals(1, fs.getPrimaryKey().getColumns().size()); assertTrue(fs.getPrimaryKey().getColumns().get(0) instanceof SequencedPrimaryKeyColumn); FeatureCollection features = fs.getFeatures(); assertPrimaryKeyValues(features, 3); addFeature(fs.getSchema(), fs); assertPrimaryKeyValues(features, 4); }
public void testFeatureSource() throws Exception { FeatureSource fs = dataStore.getFeatureSource(tname("empty")); assertNotNull(fs); ReferencedEnvelope bounds = fs.getBounds(); assertTrue(bounds.isNull()); int count = fs.getCount(Query.ALL); assertEquals(0, count); }
public void testBBOX3DOutsideLine() throws Exception { // a bbox 3d well outside the line footprint BBOX3D bbox3d = FF.bbox("", new ReferencedEnvelope3D(2, 3, 1, 2, 100, 101, crs)); SimpleFeatureCollection fc = dataStore.getFeatureSource(tname(getLine3d())).getFeatures(bbox3d); assertEquals(0, fc.size()); }
public void testGetFeatureStoreRemoveFeatures() throws IOException { SimpleFeatureStore road = (SimpleFeatureStore) dataStore.getFeatureSource(tname("road")); road.removeFeatures(td.rd1Filter); assertEquals(0, road.getFeatures(td.rd1Filter).size()); assertEquals(td.roadFeatures.length - 1, road.getFeatures().size()); }
public void testGetFeatureStoreSetFeatures() throws NoSuchElementException, IOException, IllegalAttributeException { FeatureReader<SimpleFeatureType, SimpleFeature> reader = DataUtilities.reader( new SimpleFeature[] { td.newRoad, }); SimpleFeatureStore road = (SimpleFeatureStore) dataStore.getFeatureSource(tname("road")); assertEquals(3, count(tname("road"))); road.setFeatures(reader); assertEquals(1, count(tname("road"))); }
private void assertDWithinFilter(int expectedMatches, double distance, String unit) throws IOException { FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); final PropertyName geomProperty = ff.property(aname("geometry")); final ContentFeatureSource features = dataStore.getFeatureSource(tname("ft1")); // too short distance DWithin filter = ff.dwithin(geomProperty, ff.literal(REFERENCE_POINT), distance, unit); FeatureCollection fc = features.getFeatures(filter); assertEquals(expectedMatches, fc.size()); }
public void testSimpleNegation() throws Exception { Not filter = ff.not(ff.equal(ff.property(aname(A)), ff.literal(10), false)); ContentFeatureSource fs = dataStore.getFeatureSource(tname(ABC)); int count = fs.getCount(new Query(tname(ABC), filter)); assertEquals(2, count); }
public void testMax() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MaxVisitor v = new MyMaxVisitor(p); dataStore.getFeatureSource(tname("ft1")).accepts(Query.ALL, v, null); assertFalse(visited); assertEquals(2.2, v.getResult().toDouble(), 0.01); }
public void testIntersectsRingFilter() throws Exception { FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); // should match only "r1" GeometryFactory gf = new GeometryFactory(); PackedCoordinateSequenceFactory sf = new PackedCoordinateSequenceFactory(); LineString ls = gf.createLinearRing(sf.create(new double[] {2, 1, 2, 3, 0, 3, 2, 1}, 2)); Intersects is = ff.intersects(ff.property(aname("geom")), ff.literal(ls)); FeatureCollection features = dataStore.getFeatureSource(tname("road")).getFeatures(is); checkSingleResult(features, "r1"); }
public void testWriteFeatures() throws Exception { try (FeatureWriter fw = dataStore.getFeatureWriterAppend(tname(PERSON), Transaction.AUTO_COMMIT)) { SimpleFeature f = (SimpleFeature) fw.next(); f.setAttribute(aname("name"), "Joe"); f.setAttribute(aname("age"), 27); fw.write(); } FeatureCollection fc = dataStore.getFeatureSource(tname(PERSON)).getFeatures(); assertEquals(3, fc.size()); } }
public void testSimpleIn() throws IOException { FilterFactory ff = dataStore.getFilterFactory(); Function function = ff.function( "in", ff.property(aname("intProperty")), ff.literal("1"), ff.literal("2")); Filter filter = ff.equal(function, ff.literal("true"), false); SimpleFeatureSource fs = dataStore.getFeatureSource(tname("ft1")); SimpleFeatureCollection fc = fs.getFeatures(filter); assertEquals(getCaseInsensitiveSet("ft1.1", "ft1.2"), collectFeatureIds(fc)); }
public void testNotEqual() throws IOException { FilterFactory ff = dataStore.getFilterFactory(); Function function = ff.function( "in", ff.property(aname("intProperty")), ff.literal("1"), ff.literal("2")); Filter filter = ff.notEqual(function, ff.literal("true"), false); SimpleFeatureSource fs = dataStore.getFeatureSource(tname("ft1")); SimpleFeatureCollection fc = fs.getFeatures(filter); assertEquals(getCaseInsensitiveSet("ft1.0"), collectFeatureIds(fc)); }
public void testRead() throws Exception { SimpleFeatureType type = dataStore.getSchema(tname("udt")); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("udt")).getFeatures(); try (SimpleFeatureIterator fi = features.features()) { assertTrue(fi.hasNext()); assertEquals("12ab", fi.next().getAttribute(aname("ut"))); assertFalse(fi.hasNext()); } }
public void testMinWithFilter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MinVisitor v = new MyMinVisitor(p); Filter f = ff.greater(ff.property(aname("doubleProperty")), ff.literal(1)); Query q = new Query(tname("ft1"), f); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testSumWithFilter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); SumVisitor v = new MySumVisitor(p); Filter f = ff.less(ff.property(aname("doubleProperty")), ff.literal(2)); Query q = new Query(tname("ft1"), f); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }