/** * Visit the SLD * * <p>Visit each layer. Construct temporary stores for inline features and remote OWS layers. * After visiting a layer, visit each style in that layer. In cases where the styled layer * references multiple layers, such as a named layer referencing a layer group, or remote OWS * user layer exposing multiple layers, visit each style for each of these sublayers instead. * * @param sld The sld the visitor is applied to * @throws UnsupportedOperationException, If the sld uses features not supported by GeoServer, * such as if an OWS service other than WFS is specified for a UserLayer * @throws IllegalStateException If the sld is somehow invalid, such as if there is a NamedLayer * without a name * @throws ServiceException if there was a problem accessing a remote OWS service * @throws UncheckedIOException if there is an underlying {@link IOException} when reading * {@link Style} objects from the catalog */ @Override public void visit(StyledLayerDescriptor sld) { if (sld.getStyledLayers().length == 0) { throw new IllegalStateException("SLD document contains no layers"); } super.visit(sld); }
@Override public void visit(Style style) { styleCount++; if (style instanceof NamedStyle) { visitNamedStyleInternal((NamedStyle) style); } else { visitUserStyleInternal(style); } super.visit(style); }
@Override public void visit(NamedLayer layer) { if (null == layer.getName()) { throw new ServiceException("A UserLayer or NamedLayer without layer name was passed"); } setLayerState(visitNamedLayerInternal(layer), layer); if (!handleLayerGroup()) { super.visit(layer); } handleNoStyles(); clearLayerState(); }
@Override public void visit(Symbolizer sym) { if (sym instanceof RasterSymbolizer) { visit((RasterSymbolizer) sym); } else if (sym instanceof LineSymbolizer) { visit((LineSymbolizer) sym); } else if (sym instanceof PolygonSymbolizer) { visit((PolygonSymbolizer) sym); } else if (sym instanceof PointSymbolizer) { visit((PointSymbolizer) sym); } else if (sym instanceof TextSymbolizer) { visit((TextSymbolizer) sym); } else { throw new RuntimeException("visit(Symbolizer) unsupported"); } }
@Override public void visit(FeatureTypeStyle fts) { super.visit(fts); Map<String, String> options = fts.getOptions(); checkAlphaComposite(options); }
@Override public void visit(Symbolizer sym) { if( sym instanceof RasterSymbolizer){ visit( (RasterSymbolizer) sym ); } else if( sym instanceof LineSymbolizer){ visit( (LineSymbolizer) sym ); } else if( sym instanceof PolygonSymbolizer){ visit( (PolygonSymbolizer) sym ); } else if( sym instanceof PointSymbolizer){ visit( (PointSymbolizer) sym ); } else if( sym instanceof TextSymbolizer){ visit( (TextSymbolizer) sym ); } else { throw new RuntimeException("visit(Symbolizer) unsupported"); } }