TransformFeatureStore extends TransformFeatureSource implements SimpleFeatureStore { @Override public void setFeatures(FeatureReader<SimpleFeatureType, SimpleFeature> reader) throws IOException { TransformFeatureReaderWrapper rr = new TransformFeatureReaderWrapper(reader, invertedTransformer); store.setFeatures(rr); } TransformFeatureStore(SimpleFeatureStore store, Name name, List<Definition> definitions); @Override void setTransaction(Transaction transaction); @Override Transaction getTransaction(); @Override void removeFeatures(Filter filter); @Override List<FeatureId> addFeatures(
            FeatureCollection<SimpleFeatureType, SimpleFeature> collection); @Override void setFeatures(FeatureReader<SimpleFeatureType, SimpleFeature> reader); @Override void modifyFeatures(Name[] attributeNames, Object[] attributeValues, Filter filter); @Override void modifyFeatures(AttributeDescriptor[] type, Object[] value, Filter filter); @Override void modifyFeatures(Name attributeName, Object attributeValue, Filter filter); @Override void modifyFeatures(AttributeDescriptor type, Object value, Filter filter); @Override void modifyFeatures(String name, Object attributeValue, Filter filter); @Override void modifyFeatures(String[] nameArray, Object[] attributeValues, Filter filter);  }
@Test public void testSetOnSelection() throws Exception { SimpleFeatureStore transformed = (SimpleFeatureStore) transformWithSelection(); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(transformed.getSchema()); fb.add(wkt.read("POINT (-120 40)").buffer(3)); fb.add("baloon"); fb.add(1); SimpleFeature sf = fb.buildFeature("states_mini.11"); transformed.setFeatures(new CollectionFeatureReader(new SimpleFeature[] {sf})); int size = STATES.getCount(Query.ALL); assertEquals(1, size); assertEquals(1, STATES.getFeatures(new Query(null, CQL.toFilter("state_name = 'baloon'"))).size()); assertEquals(1, transformed.getFeatures(new Query(null, CQL.toFilter("state_name = 'baloon'"))).size()); }
@Test public void testSetOnRename() throws Exception { SimpleFeatureStore transformed = (SimpleFeatureStore) transformWithRename(); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(transformed.getSchema()); fb.add(wkt.read("POINT (-120 40)").buffer(3)); fb.add("baloon"); fb.add(1); SimpleFeature sf = fb.buildFeature("states_mini.11"); transformed.setFeatures(new CollectionFeatureReader(new SimpleFeature[] {sf})); int size = STATES.getCount(Query.ALL); assertEquals(1, size); assertEquals(1, STATES.getFeatures(new Query(null, CQL.toFilter("state_name = 'baloon'"))).size()); assertEquals(1, transformed.getFeatures(new Query(null, CQL.toFilter("name = 'baloon'"))).size()); }
@Test public void testSetOnTransform() throws Exception { SimpleFeatureStore transformed = (SimpleFeatureStore) transformWithPartialTransform(); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(transformed.getSchema()); fb.add(wkt.read("POINT (-120 40)").buffer(3)); fb.add("baloon"); fb.add(1); fb.add(1); SimpleFeature sf = fb.buildFeature("states_mini.11"); transformed.setFeatures(new CollectionFeatureReader(new SimpleFeature[] {sf})); int size = STATES.getCount(Query.ALL); assertEquals(1, size); assertEquals(1, STATES.getFeatures(new Query(null, CQL.toFilter("persons = 1"))).size()); assertEquals(1, transformed.getFeatures(new Query(null, CQL.toFilter("people = 1"))).size()); }