/** * Parses fid filters * * @param fid */ protected List readFidFilter(String fid) { List filters = new ArrayList(); List unparsed; ListIterator i; LOGGER.finest("reading fid filter: " + fid); unparsed = readNested(fid); i = unparsed.listIterator(); HashSet set = new HashSet(); while (i.hasNext()) { List ids = (List) i.next(); ListIterator innerIterator = ids.listIterator(); while (innerIterator.hasNext()) { set.add(factory.featureId((String) innerIterator.next())); } } Id fidFilter = factory.id(set); filters.add(fidFilter); LOGGER.finest("added fid filter: " + fidFilter); return filters; }
@Before public void setUp() throws Exception { data = File.createTempFile("retype", "data", new File("./target")); data.delete(); data.mkdir(); final String fileName = MockData.BUILDINGS.getLocalPart() + ".properties"; URL properties = MockData.class.getResource(fileName); IOUtils.copy(properties.openStream(), new File(data, fileName)); PropertyDataStore pds = new PropertyDataStore(data); rts = new RetypingDataStore(pds) { @Override protected String transformFeatureTypeName(String originalName) { if (originalName.equals(MockData.BUILDINGS.getLocalPart())) return RENAMED; else return super.transformFeatureTypeName(originalName); } }; // build a filter that will retrieve one feature only FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); fid = RENAMED + ".1107531701011"; fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); }
fidFilter = ff.id(Collections.singleton(ff.featureId(fid)));
/** Build the expression. */ public Id build() { if (unset) { return null; } return ff.id(new HashSet<Identifier>(ids)); }
/** Helper method or building fid filters. */ Filter idFilter(Feature feature) { FilterFactory ff = this.entry.dataStore.getFilterFactory(); Set<FeatureId> fids = new HashSet<FeatureId>(); fids.add(feature.getIdentifier()); return ff.id(fids); }
/** Lazy create a filter based on index */ protected Filter createFilter() { FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); Set<FeatureId> featureIds = new HashSet<FeatureId>(); for (Iterator<FeatureId> it = index.iterator(); it.hasNext(); ) { FeatureId fid = it.next(); featureIds.add(ff.featureId(fid.getID())); } Id fids = ff.id(featureIds); return fids; }
/** Deletes an existing feature in the database for a particular feature type / fid. */ protected void delete(SimpleFeatureType featureType, String fid, Connection cx) throws IOException { Filter filter = filterFactory.id(Collections.singleton(filterFactory.featureId(fid))); delete(featureType, filter, cx); }
Filter fidFilter = ff.id(Collections.singleton(ff.featureId(fid)));
@Test public void testFeautureSourceFidFilter() throws Exception { // grab the last feature in the collection (there are more than one) SimpleFeatureSource fs = rts.getFeatureSource(RENAMED); // build a filter that will retrieve that feature only FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); final String fid = RENAMED + ".1107531701011"; Filter fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); SimpleFeatureCollection fc = fs.getFeatures(new Query(RENAMED, fidFilter)); assertEquals(RENAMED, fc.getSchema().getName().getLocalPart()); assertEquals(1, fc.size()); FeatureIterator<SimpleFeature> it = fc.features(); assertTrue(it.hasNext()); SimpleFeature sf = it.next(); assertFalse(it.hasNext()); it.close(); assertEquals(fid, sf.getID()); }
@Test public void testFeautureSourceFidFilter() throws Exception { // grab the last feature in the collection (there are more than one) SimpleFeatureSource fs = rts.getFeatureSource(RENAMED); // build a filter that will retrieve that feature only FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); final String fid = RENAMED + ".f001"; Filter fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); SimpleFeatureCollection fc = fs.getFeatures(new Query(RENAMED, fidFilter)); assertEquals(RENAMED, fc.getSchema().getName().getLocalPart()); assertEquals(1, fc.size()); FeatureIterator<SimpleFeature> it = fc.features(); assertTrue(it.hasNext()); SimpleFeature sf = it.next(); assertFalse(it.hasNext()); it.close(); assertEquals(fid, sf.getID()); }
public Filter getUpdateFilter(String attributePath) { if (attributePath.equals("eventtype")) { HashSet ids = new HashSet(); ids.add(ff.featureId("fid")); return ff.id(ids); } return null; } });
public Filter getUpdateFilter(String attributePath) { if (attributePath.equals("eventtype")) { HashSet ids = new HashSet(); ids.add(ff.featureId("fid")); return ff.id(ids); } return null; } });
public void testIdFilterSingle() throws Exception { Set<FeatureId> fids = new LinkedHashSet<FeatureId>(); fids.add(filterFac.featureId("fid1")); Id id = filterFac.id(fids); encoder.encode(id); assertEquals("WHERE (id = 'fid1')", output.toString()); }
public void testIdFilterMulti() throws Exception { Set<FeatureId> fids = new LinkedHashSet<FeatureId>(); fids.add(filterFac.featureId("fid1")); fids.add(filterFac.featureId("fid2")); Id id = filterFac.id(fids); encoder.encode(id); assertEquals("WHERE ((id = 'fid1') OR (id = 'fid2'))", output.toString()); }
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 testVisitFidFilter() throws Exception { HashSet ids = new HashSet(); ids.add(ff.featureId("david")); Filter filter = ff.id(ids); visitor = newVisitor(new FilterCapabilities(Id.class)); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); assertEquals(filter, visitor.getFilterPre()); }
@Test @SuppressWarnings("rawtypes") public void testVisitIdFilterWithNoIdCapabilities() throws Exception { // Id Filter HashSet ids = new HashSet(); ids.add(ff.featureId("david")); Filter idFilter = ff.id(ids); // no Id Capabilities visitor = newVisitor(Capabilities.SIMPLE_COMPARISONS_OPENGIS); idFilter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(idFilter, visitor.getFilterPost()); }
@Test public void testVisitFidFilter() throws Exception { HashSet ids = new HashSet(); ids.add(ff.featureId("david")); Filter filter = ff.id(ids); visitor = newVisitor(newCapabilities(Id.class)); filter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPost()); assertEquals(filter, visitor.getFilterPre()); }
@SuppressWarnings({"rawtypes", "unchecked"}) public void testVisitIdFilterWithNoIdCapabilities() throws Exception { // Id Filter HashSet ids = new HashSet(); ids.add(ff.featureId("david")); Filter idFilter = ff.id(ids); // no Id Capabilities FilterCapabilities fc = new FilterCapabilities(); fc.addAll(FilterCapabilities.SIMPLE_COMPARISONS_OPENGIS); fc.addType(And.class); visitor = newVisitor(fc); idFilter.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(idFilter, visitor.getFilterPost()); }
public void testMultiColumnPrimaryKey() throws Exception { JDBCFeatureStore fs = (JDBCFeatureStore) dataStore.getFeatureSource(tname("multi")); assertEquals(2, fs.getPrimaryKey().getColumns().size()); FeatureCollection features = fs.getFeatures(); assertMultiPrimaryKeyValues(features, 3); addFeature(fs.getSchema(), fs); assertMultiPrimaryKeyValues(features, 4); // test with a filter FilterFactory ff = dataStore.getFilterFactory(); Id id = ff.id(Collections.singleton(ff.featureId(tname("multi") + ".1.x"))); features = fs.getFeatures(id); assertEquals(1, features.size()); }