TransformFeatureSource implements SimpleFeatureSource { @Override public Set<Key> getSupportedHints() { Set<Key> hints = new HashSet<Key>(); hints.addAll(source.getSupportedHints()); hints.add(Hints.FEATURE_DETACHED); return hints; } TransformFeatureSource(SimpleFeatureSource source, Name name, List<Definition> definitions); @Override Name getName(); @Override ResourceInfo getInfo(); @Override DataAccess<SimpleFeatureType, SimpleFeature> getDataStore(); @Override QueryCapabilities getQueryCapabilities(); @Override void addFeatureListener(FeatureListener listener); @Override void removeFeatureListener(FeatureListener listener); @Override SimpleFeatureType getSchema(); @Override ReferencedEnvelope getBounds(); @Override ReferencedEnvelope getBounds(Query query); @Override int getCount(Query query); @Override Set<Key> getSupportedHints(); @Override SimpleFeatureCollection getFeatures(); @Override SimpleFeatureCollection getFeatures(Filter filter); @Override SimpleFeatureCollection getFeatures(Query query);  }
@Test public void testSupportedHints() throws Exception { SimpleFeatureSource transformed = transformWithSelection(); Set<Key> hints = transformed.getSupportedHints(); assertTrue(hints.contains(Hints.FEATURE_DETACHED)); }