public Object visit(org.opengis.filter.expression.Function expression, Object data) { usingVolatileFunctions |= (expression instanceof VolatileFunction); return super.visit(expression, data); };
/** * @see org.geotools.styling.StyleVisitor#visit(org.geotools.styling.Symbolizer) */ public void visit(Symbolizer sym) { if (sym instanceof PointSymbolizer) { visit((PointSymbolizer) sym); } if (sym instanceof LineSymbolizer) { visit((LineSymbolizer) sym); } if (sym instanceof PolygonSymbolizer) { visit((PolygonSymbolizer) sym); } if (sym instanceof TextSymbolizer) { visit((TextSymbolizer) sym); } if (sym instanceof RasterSymbolizer) { visit((RasterSymbolizer) sym); } }
/** * @see org.geotools.styling.StyleVisitor#visit(org.geotools.styling.Symbolizer) */ public void visit(Symbolizer sym) { if (sym instanceof PointSymbolizer) { visit((PointSymbolizer) sym); } if (sym instanceof LineSymbolizer) { visit((LineSymbolizer) sym); } if (sym instanceof PolygonSymbolizer) { visit((PolygonSymbolizer) sym); } if (sym instanceof TextSymbolizer) { visit((TextSymbolizer) sym); } if (sym instanceof RasterSymbolizer) { visit((RasterSymbolizer) sym); } }
public void visit( Rule rule ) { DuplicatingStyleVisitor dupeStyleVisitor = new DuplicatingStyleVisitor(); dupeStyleVisitor.visit(rule); Rule clone = (Rule) dupeStyleVisitor.getCopy(); super.visit(clone); } };
/** * Inspects the <code>MapLayer</code>'s style and retrieves it's needed attribute names, * returning at least the default geometry attribute name. * * @param query DOCUMENT ME! * @param style the <code>Style</code> to determine the needed attributes from * @param schema the featuresource schema * @return the minimun set of attribute names needed to render <code>layer</code> */ private String[] findStyleAttributes( final Query query, Style style, FeatureType schema ) { StyleAttributeExtractor sae = new StyleAttributeExtractor(){ public void visit( Rule rule ) { DuplicatingStyleVisitor dupeStyleVisitor = new DuplicatingStyleVisitor(); dupeStyleVisitor.visit(rule); Rule clone = (Rule) dupeStyleVisitor.getCopy(); super.visit(clone); } }; sae.visit(style); FilterAttributeExtractor qae = new FilterAttributeExtractor(); query.getFilter().accept(qae,null); Set ftsAttributes=new HashSet(sae.getAttributeNameSet()); ftsAttributes.addAll(qae.getAttributeNameSet()); // the code following assumes we won't extract the default geometry, and that's // most of the time true, but fails if the filter or the style uses it. ftsAttributes.remove(schema.getDefaultGeometry().getLocalName()); return (String[]) ftsAttributes.toArray(new String[0]); }
/** * Checks to make sure that the style passed in can process the FeatureType. * * @param style * The style to check * @param fType * The source requested. * * @throws WmsException * DOCUMENT ME! */ private void checkStyle(Style style, SimpleFeatureType fType) throws WmsException { StyleAttributeExtractor sae = new StyleAttributeExtractor(); sae.visit(style); String[] styleAttributes = sae.getAttributeNames(); String attName; final int length = styleAttributes.length; for (int i = 0; i < length; i++) { attName = styleAttributes[i]; if (fType.getDescriptor(attName) == null) { throw new WmsException( "The requested Style can not be used with " + "this featureType. The style specifies an attribute of " + attName + " and the featureType definition is: " + fType); } } }
/** * Inspects the <code>MapLayer</code>'s style and retrieves it's needed attribute names, * returning at least the default geometry attribute name. * * @param query DOCUMENT ME! * @param style the <code>Style</code> to determine the needed attributes from * @param schema the SimpleFeatureSource schema * @return the minimun set of attribute names needed to render <code>layer</code> */ private String[] findStyleAttributes( final Query query, Style style, SimpleFeatureType schema ) { StyleAttributeExtractor sae = new StyleAttributeExtractor(); sae.visit(style); FilterAttributeExtractor qae = new FilterAttributeExtractor(); query.getFilter().accept(qae,null); Set ftsAttributes = new LinkedHashSet(sae.getAttributeNameSet()); ftsAttributes.addAll(qae.getAttributeNameSet()); if (sae.getDefaultGeometryUsed() && (!ftsAttributes.contains(schema.getGeometryDescriptor().getLocalName()))) { ftsAttributes.add(schema.getGeometryDescriptor().getLocalName()); } else { // the code following assumes the geometry column is the last one // make sure it's the last for good ftsAttributes.remove(schema.getGeometryDescriptor().getLocalName()); ftsAttributes.add(schema.getGeometryDescriptor().getLocalName()); } return (String[]) ftsAttributes.toArray(new String[0]); }
sae.visit(style); String[] styleAttributes = sae.getAttributeNames();
sae.visit(style); Set<PropertyName> styleAttributes = sae.getAttributes();