public void visit(StyledLayerDescriptor sld) { StyledLayerDescriptor copy = null; StyledLayer[] layers = sld.getStyledLayers(); StyledLayer[] layersCopy = new StyledLayer[layers.length]; final int length = layers.length; for (int i = 0; i < length; i++) { if (layers[i] instanceof UserLayer) { ((UserLayer) layers[i]).accept(this); layersCopy[i] = (UserLayer) pages.pop(); } else if (layers[i] instanceof NamedLayer) { ((NamedLayer) layers[i]).accept(this); layersCopy[i] = (NamedLayer) pages.pop(); } } copy = sf.createStyledLayerDescriptor(); copy.setAbstract(sld.getAbstract()); copy.setName(sld.getName()); copy.setTitle(sld.getTitle()); copy.setStyledLayers(layersCopy); if (STRICT && !copy.equals(sld)) { throw new IllegalStateException("Was unable to duplicate provided SLD:" + sld); } pages.push(copy); }
public StyledLayerDescriptor build() { if (unset) { return null; } StyledLayerDescriptor sld = sf.createStyledLayerDescriptor(); sld.setName(name); sld.setTitle(title); sld.setAbstract(sldAbstract); for (AbstractSLDBuilder<? extends StyledLayer> builder : layers) { sld.addStyledLayer(builder.build()); } reset(); return sld; }
public static List<Exception> validate(Catalog catalog, StyledLayerDescriptor sld) { SLDNamedLayerValidator validator = new SLDNamedLayerValidator(catalog, null); sld.accept(validator); return validator.getValidationErrors(); } }
StyledLayerDescriptor parse10( Object input, ResourceLocator resourceLocator, EntityResolver entityResolver) throws IOException { Reader reader = null; try { // we need to close the reader if we grab one, but if it's a file it has // to stay as such to allow relative resource resolution during the parse if (!(input instanceof File)) { reader = toReader(input); input = reader; } SLDParser p = createSld10Parser(input, resourceLocator, entityResolver); StyledLayerDescriptor sld = p.parseSLD(); if (sld.getStyledLayers().length == 0) { // most likely a style that is not a valid sld, try to actually parse out a // style and then wrap it in an sld Style[] style = p.readDOM(); if (style.length > 0) { NamedLayer l = styleFactory.createNamedLayer(); l.addStyle(style[0]); sld.addStyledLayer(l); } } return sld; } finally { IOUtils.closeQuietly(reader); } }
/** * Convenience method to pull a UserSyle from a StyledLayerDescriptor. * * <p>This method will return the first UserStyle it encounters in the StyledLayerDescriptor * tree. * * @param sld The StyledLayerDescriptor object. * @return The UserStyle, or <code>null</code> if no such style could be found. */ public static Style style(StyledLayerDescriptor sld) { for (int i = 0; i < sld.getStyledLayers().length; i++) { Style[] styles = null; if (sld.getStyledLayers()[i] instanceof NamedLayer) { NamedLayer layer = (NamedLayer) sld.getStyledLayers()[i]; styles = layer.getStyles(); } else if (sld.getStyledLayers()[i] instanceof UserLayer) { UserLayer layer = (UserLayer) sld.getStyledLayers()[i]; styles = layer.getUserStyles(); } if (styles != null) { for (int j = 0; j < styles.length; j++) { if (!(styles[j] instanceof NamedStyle)) { return styles[j]; } } } } return null; }
public void visit(StyledLayerDescriptor sld) { AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "version", "version", "", "1.0.0"); start("StyledLayerDescriptor", atts); if ((sld.getName() != null) && (sld.getName().length() > 0)) { element("Name", sld.getName()); // optional } if ((sld.getTitle() != null) && (sld.getTitle().length() > 0)) { element("Title", sld.getTitle()); // optional } if ((sld.getAbstract() != null) && (sld.getAbstract().length() > 0)) { element("Abstract", sld.getAbstract()); // optional } StyledLayer[] layers = sld.getStyledLayers(); for (int i = 0; i < layers.length; i++) { if (layers[i] instanceof NamedLayer) { visit((NamedLayer) layers[i]); } else if (layers[i] instanceof UserLayer) { visit((UserLayer) layers[i]); } else { throw new IllegalArgumentException( "StyledLayer '" + layers[i].getClass().toString() + "' not found"); } } end("StyledLayerDescriptor"); }
sld.setName((String) node.getChildValue("Name")); sld.setTitle(intString.toString()); sld.setAbstract(intString.toString()); sld.setStyledLayers(layers);
return; StyledLayer[] styledLayerList = this.sld.getStyledLayers(); this.sld.setStyledLayers(styledLayerList); setStyledLayer(newNamedLayer);
sld.layers().add(l); return sld;
/** * Convenience method to wrap a UserStyle in a StyledLayerDescriptor object. * * <p>This method wraps the UserStyle in a NamedLayer, and wraps the result in a * StyledLayerDescriptor. * * @param style The UserStyle. * @return The StyledLayerDescriptor. */ public static StyledLayerDescriptor sld(Style style) { StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); NamedLayer layer = styleFactory.createNamedLayer(); layer.setName(style.getName()); sld.addStyledLayer(layer); layer.addStyle(style); return sld; }
sld.layers().add(userLayer); } catch (FactoryException e) { throw new MBFormatException("Error constructing background layer", e); currentNamedLayer.styles().add(style); sld.layers().add(currentNamedLayer); if (sld.layers().isEmpty()) { throw new MBFormatException("No visibile layers"); sld.setName(getName()); return sld;
@Override public void encode(Object obj, ContentHandler handler) throws Exception { StyleFactory sf = CommonFactoryFinder.getStyleFactory(null); StyledLayerDescriptor sld = sf.createStyledLayerDescriptor(); NamedLayer nl = sf.createNamedLayer(); nl.setName(""); nl.styles().add((Style) obj); sld.setStyledLayers(new StyledLayer[] {nl}); Encoder e = new Encoder(sldConfiguration); e.encode(sld, element, handler); }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { StyledLayerDescriptor sld = (StyledLayerDescriptor) super.parse(instance, node, value); if (node.hasChild("Description")) { Description desc = (Description) node.getChildValue("Description"); if (desc.getAbstract() != null) { sld.setAbstract(desc.getAbstract().toString()); } if (desc.getTitle() != null) { sld.setTitle(desc.getTitle().toString()); } } return sld; } }
/** * 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); }
/** * Reset builder to provided original stroke. * * @param stroke */ public StyledLayerDescriptorBuilder reset(StyledLayerDescriptor other) { if (other == null) { return unset(); } this.name = other.getName(); this.title = other.getTitle(); this.sldAbstract = other.getAbstract(); this.layers.clear(); for (StyledLayer layer : other.getStyledLayers()) { if (layer instanceof UserLayer) { layers.add(new UserLayerBuilder().reset((UserLayer) layer)); } else if (layer instanceof NamedLayer) { layers.add(new NamedLayerBuilder().reset((NamedLayer) layer)); } } unset = false; return this; }
sld.setName((String) node.getChildValue("Name")); InternationalString intString = (InternationalString) node .getChildValue("Title"); sld.setTitle(intString.toString()); InternationalString intString = (InternationalString) node .getChildValue("Abstract"); sld.setAbstract(intString.toString()); sld.setStyledLayers(layers);
private StyledLayerDescriptor parse10(Object input, ResourceLocator resourceLocator, EntityResolver entityResolver) throws IOException { SLDParser p = createSld10Parser(input, resourceLocator, entityResolver); StyledLayerDescriptor sld = p.parseSLD(); if (sld.getStyledLayers().length == 0) { //most likely a style that is not a valid sld, try to actually parse out a // style and then wrap it in an sld Style[] style = p.readDOM(); if (style.length > 0) { NamedLayer l = styleFactory.createNamedLayer(); l.addStyle(style[0]); sld.addStyledLayer(l); } } return sld; }
return; StyledLayer[] styledLayerList = this.sld.getStyledLayers(); this.sld.setStyledLayers(styledLayerList); setStyledLayer(newUserLayer);
private StyledLayerDescriptor sld(FeatureTypeStyle fts) { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); style.featureTypeStyles().add(fts); return sld; }
/** * Adds the new named styled layer. * * @param namedLayer the named layer */ public void addNewStyledLayer(NamedLayer namedLayer) { if (this.sld == null) { ConsoleManager.getInstance().error(this, "sld == null"); } else { this.sld.addStyledLayer(namedLayer); } }