public void testEmptyFid() { Filter result = (Filter) emptyFid.accept(simpleVisitor, null); assertEquals(Filter.EXCLUDE, result); }
public void testRegExFIDValidator() { FIDValidator validator = new SimplifyingFilterVisitor.RegExFIDValidator("abc\\.\\d+"); simpleVisitor.setFIDValidator(validator); Set<Identifier> ids = new HashSet<Identifier>(); ids.add(ff.featureId("abc..")); ids.add(ff.featureId(".abc.1")); ids.add(ff.featureId("abc.123")); ids.add(ff.featureId("abc.ax")); Id filter = ff.id(ids); Filter result = (Filter) filter.accept(simpleVisitor, null); Filter expected = ff.id(Collections.singleton(ff.featureId("abc.123"))); assertEquals(expected, result); }
public void testFidValidity() { simpleVisitor.setFIDValidator( new SimplifyingFilterVisitor.FIDValidator() { public boolean isValid(String fid) { return fid.startsWith("pass"); } }); Set<Identifier> ids = new HashSet<Identifier>(); ids.add(ff.featureId("notPass")); Id filter = ff.id(ids); assertEquals(Filter.EXCLUDE, filter.accept(simpleVisitor, null)); ids.add(ff.featureId("pass1")); ids.add(ff.featureId("pass2")); filter = ff.id(ids); Set<Identifier> validIds = new HashSet<Identifier>(); validIds.add(ff.featureId("pass2")); validIds.add(ff.featureId("pass1")); Filter expected = ff.id(validIds); assertEquals(expected, filter.accept(simpleVisitor, null)); }
public void testTypeNameDotNumberValidator() { final String typeName = "states"; FIDValidator validator; validator = new SimplifyingFilterVisitor.TypeNameDotNumberFidValidator(typeName); simpleVisitor.setFIDValidator(validator); Set<Identifier> ids = new HashSet<Identifier>(); ids.add(ff.featureId("_states")); ids.add(ff.featureId("states.abc")); ids.add(ff.featureId("states..")); ids.add(ff.featureId("states.123")); Id filter = ff.id(ids); Filter result = (Filter) filter.accept(simpleVisitor, null); Filter expected = ff.id(Collections.singleton(ff.featureId("states.123"))); assertEquals(expected, result); }
/** * The type of filter that returns should be in a single Or filter OR(a,b,c) instead of ((a OR * b) or c) */ @Test public void testUnrollFid() throws Exception { Set<FeatureId> fids = new HashSet(); String fid1 = "station_no.1"; // exists String fid2 = "station_no.500"; // doesn't exists fids.add(ff.featureId(fid1)); fids.add(ff.featureId(fid2)); Id fidFilter = ff.id(fids); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof OrImpl); List<Filter> filters = ((OrImpl) unrolled).getChildren(); assertEquals(2, filters.size()); for (Filter f : filters) { assertTrue(f instanceof IsEqualsToImpl); } FeatureCollection<SimpleFeatureType, SimpleFeature> results = mapping.getSource().getFeatures(unrolled); assertEquals(1, getCount(results)); FeatureIterator<SimpleFeature> features = results.features(); SimpleFeature unmappedFeature = (SimpleFeature) features.next(); features.close(); assertNotNull(unmappedFeature); Object object = unmappedFeature.getProperty("station_no").getValue(); assertEquals(fid1, object); }
String fid = sourceFeature.getIdentifier().toString(); Id fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof Id);
/** * Mapping specifies station_no --> wq_plus/@id. A FidFilter over wq_plus type should result in * a compare equals filter over the station_no attribute of wq_ir_results simple type. */ @Test public void testUnrollFidMappedToAttribute() throws Exception { String fid = "station_no.1"; Id fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); FeatureCollection<SimpleFeatureType, SimpleFeature> results = mapping.getSource().getFeatures(unrolled); assertEquals(1, getCount(results)); FeatureIterator<SimpleFeature> features = results.features(); SimpleFeature unmappedFeature = (SimpleFeature) features.next(); features.close(); assertNotNull(unmappedFeature); Object object = unmappedFeature.getProperty("station_no").getValue(); assertEquals(fid, object); }
/** * The type of filter that returns should be in a single Or filter OR(a,b,c) instead * of ((a OR b) or c) */ @Test public void testUnrollFid() throws Exception { Set<FeatureId> fids = new HashSet(); String fid1 = "station_no.1";// exists String fid2 = "station_no.500";// doesn't exists fids.add(ff.featureId(fid1)); fids.add(ff.featureId(fid2)); Id fidFilter = ff.id(fids); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof OrImpl); List<Filter> filters = ((OrImpl) unrolled).getChildren(); assertEquals(2, filters.size()); for (Filter f : filters) { assertTrue(f instanceof IsEqualsToImpl); } FeatureCollection<SimpleFeatureType, SimpleFeature> results = mapping.getSource() .getFeatures(unrolled); assertEquals(1, getCount(results)); Iterator<SimpleFeature> features = results.iterator(); SimpleFeature unmappedFeature = (SimpleFeature) features.next(); results.close(features); assertNotNull(unmappedFeature); Object object = unmappedFeature.getProperty("station_no").getValue(); assertEquals(fid1, object); }
/** * Mapping specifies station_no --> wq_plus/@id. A FidFilter over wq_plus type should result in * a compare equals filter over the station_no attribute of wq_ir_results simple type. */ @Test public void testUnrollFidMappedToAttribute() throws Exception { String fid = "station_no.1"; Id fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); FeatureCollection<SimpleFeatureType,SimpleFeature> results = mapping.getSource() .getFeatures(unrolled); assertEquals(1, getCount(results)); Iterator<SimpleFeature> features = results.iterator(); SimpleFeature unmappedFeature = (SimpleFeature) features.next(); results.close(features); assertNotNull(unmappedFeature); Object object = unmappedFeature.getProperty("station_no").getValue(); assertEquals(fid, object); }
String fid = sourceFeature.getIdentifier().toString(); Id fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); Filter unrolled = (Filter) fidFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof Id);