public SimpleFeatureCollection subCollection(Filter filter) { if (filter.equals(Filter.INCLUDE)) { return this; } if (filter.equals(Filter.EXCLUDE)) { return new EmptyFeatureCollection(schema); } return new SubFeatureCollection(this, filter); }
public SimpleFeatureCollection subCollection(Filter filter) { if (filter == Filter.INCLUDE) { return this; } if (filter == Filter.EXCLUDE) { return new EmptyFeatureCollection(schema); } // Formally new SubFeatureCollection(this, filter); return new FilteringSimpleFeatureCollection(this, filter); }
/** * Sublist of this sublist! * * <p>Implementation will ensure this does not get out of hand, order is maintained and only * indexed once. */ public SimpleFeatureCollection subList(Filter subfilter) { if (filter.equals(Filter.INCLUDE)) { return this; } if (filter.equals(Filter.EXCLUDE)) { return new EmptyFeatureCollection(schema); } return new SubFeatureList(collection, ff.and(filter, subfilter), sort.get(0)); }
@Override public SimpleFeatureCollection subCollection(Filter filter) { // get the new target envelope Envelope filterEnvelope = getEnvelope(filter); Envelope subEnvelope = queryBounds; if (filterEnvelope != null) { subEnvelope = subEnvelope.intersection(queryBounds); } if (subEnvelope.isNull()) { return new EmptyFeatureCollection(targetSchema); } // mix filters Query subQuery = new Query(query); Filter baseFilter = query.getFilter(); if (baseFilter != null && !Filter.INCLUDE.equals(baseFilter)) { Filter mixed = ff.and(baseFilter, filter); subQuery.setFilter(mixed); } return new CachingFeatureCollection(subEnvelope, sourceSchema, targetSchema, subQuery); } }
@Override public SimpleFeatureCollection subCollection(Filter filter) { if (filter == Filter.INCLUDE) { return this; } else if (filter == Filter.EXCLUDE || query.getFilter() == Filter.EXCLUDE) { return new EmptyFeatureCollection(getSchema()); } Query q = new Query(query); if (query.getFilter() == Filter.INCLUDE) { q.setFilter(filter); } else { FilterFactory ff = CommonFactoryFinder.getFilterFactory(); Filter combined = ff.and(filter, q.getFilter()); q.setFilter(combined); } return new TransformFeatureCollection(source, transformer, q); }
return new EmptyFeatureCollection(getSchema());
return new EmptyFeatureCollection(getSchema());
/** * @see org.geotools.data.FeatureSource#getFeatures(org.geotools.data.Query) */ public SimpleFeatureCollection getFeatures( Query query ) throws IOException { SimpleFeatureType schema = getSchema(); String typeName = schema.getTypeName(); if (query.getTypeName() == null) { // typeName unspecified we will // "any" use a default Query Query = new Query(query); Query.setTypeName(typeName); query = Query; } if (!typeName.equals(query.getTypeName())) { return new EmptyFeatureCollection(schema); } else { return new DefaultFeatureResults(this, query); } }
@Override public SimpleFeatureCollection subCollection(Filter filter) { // get the new target envelope Envelope filterEnvelope = getEnvelope(filter); Envelope subEnvelope = queryBounds; if(filterEnvelope != null) { subEnvelope = subEnvelope.intersection(queryBounds); } if(subEnvelope.isNull()) { return new EmptyFeatureCollection(targetSchema); } // mix filters Query subQuery = new Query(query); Filter baseFilter = query.getFilter(); if(baseFilter != null && !Filter.INCLUDE.equals(baseFilter)) { Filter mixed = ff.and(baseFilter, filter); subQuery.setFilter(mixed); } return new CachingFeatureCollection(subEnvelope, sourceSchema, targetSchema, subQuery); }
@Override public FeatureCollection<FeatureType, Feature> getFeatures(Query query) throws IOException { // first get the ids of the features we are going to return, no joins to support paging Query idsQuery = mapToSimpleCollectionQuery(query, false); // idsQuery.setProperties(Query.NO_PROPERTIES); (no can do, there are mandatory fields) SimpleFeatureCollection idFeatureCollection = getDelegateCollectionSource().getFeatures(idsQuery); Set<FeatureId> ids = new LinkedHashSet<>(); idFeatureCollection.accepts(f -> ids.add(f.getIdentifier()), null); // if no features, return immediately SimpleFeatureCollection fc; if (ids.isEmpty()) { fc = new EmptyFeatureCollection(getDelegateCollectionSource().getSchema()); } else { // the run a joined query with the specified ids Query dataQuery = mapToSimpleCollectionQuery(query, true); dataQuery.setFilter(FF.id(ids)); fc = getDelegateCollectionSource().getFeatures(dataQuery); } return new MappingFeatureCollection(schema, fc, this::mapToComplexFeature); }
} else { SimpleFeatureType simplifiedShema = buildShapefileCompatible(originalSchema); return writeShapefile(tempDir, new EmptyFeatureCollection(simplifiedShema));
} else { SimpleFeatureType simplifiedShema = buildShapefileCompatible(originalSchema); return writeShapefile(tempDir, new EmptyFeatureCollection(simplifiedShema));
return new EmptyFeatureCollection( featureType );
return new EmptyFeatureCollection(schema); return new EmptyFeatureCollection(schema); Filter revisionFilter = ff.id(revisionIdSet);
@Override public SimpleFeatureCollection subCollection(Filter filter) { if (filter == Filter.INCLUDE) { return this; } else if (filter == Filter.EXCLUDE || query.getFilter() == Filter.EXCLUDE) { return new EmptyFeatureCollection(getSchema()); } Query q = new Query(query); if (query.getFilter() == Filter.INCLUDE) { q.setFilter(filter); } else { FilterFactory ff = CommonFactoryFinder.getFilterFactory(); Filter combined = ff.and(filter, q.getFilter()); q.setFilter(combined); } return new TransformFeatureCollection(source, transformer, q); }
return new EmptyFeatureCollection( schema );
return new EmptyFeatureCollection( schema );
return new EmptyFeatureCollection(getSchema());
return new EmptyFeatureCollection( getSchema() );