// No geometry transformations -> we can modify geometries in place
// Just one geometry transformation over an attribute -> we can modify geometries in place
// Two tx over the same attribute, or straight usage and a tx -> we have to preserve the
// original geometry as well, thus we need cloning
StyleAttributeExtractor extractor = new StyleAttributeExtractor();
FeatureType featureType = layer.getFeatureSource().getSchema();
Set<String> plainGeometries = new java.util.HashSet<String>();
Set<String> txGeometries = new java.util.HashSet<String>();
for (LiteFeatureTypeStyle lft : lfts) {
for(Rule r: lft.ruleList) {
for(Symbolizer s: r.symbolizers()) {
if(s.getGeometry() == null) {
String attribute = featureType.getGeometryDescriptor().getName().getLocalPart();
if(txGeometries.contains(attribute))
return true;
plainGeometries.add(attribute);
} else if(s.getGeometry() instanceof PropertyName) {
String attribute = ((PropertyName) s.getGeometry()).getPropertyName();