package org.geotools.styling.builder;
import java.util.ArrayList;
import java.util.List;
import org.geotools.styling.AnchorPoint;
import org.geotools.styling.ChannelSelection;
import org.geotools.styling.ColorMap;
import org.geotools.styling.ColorMapEntry;
import org.geotools.styling.ContrastEnhancement;
import org.geotools.styling.Displacement;
import org.geotools.styling.ExternalGraphic;
import org.geotools.styling.FeatureTypeConstraint;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Graphic;
import org.geotools.styling.Halo;
import org.geotools.styling.ImageOutline;
import org.geotools.styling.LinePlacement;
import org.geotools.styling.LineSymbolizer;
import org.geotools.styling.Mark;
import org.geotools.styling.NamedLayer;
import org.geotools.styling.OverlapBehavior;
import org.geotools.styling.PointPlacement;
import org.geotools.styling.PointSymbolizer;
import org.geotools.styling.PolygonSymbolizer;
import org.geotools.styling.RasterSymbolizer;
import org.geotools.styling.Rule;
import org.geotools.styling.SelectedChannelType;
import org.geotools.styling.ShadedRelief;
import org.geotools.styling.Stroke;
import org.geotools.styling.Style;
import org.geotools.styling.StyleVisitor;
import org.geotools.styling.StyledLayer;
import org.geotools.styling.StyledLayerDescriptor;
import org.geotools.styling.Symbolizer;
import org.geotools.styling.TextSymbolizer;
import org.geotools.styling.UserLayer;
/**
*
*
* @source $URL$
*/
public class StyleCollector implements StyleVisitor {
List<FeatureTypeStyle> featureTypeStyles = new ArrayList<FeatureTypeStyle>();
List<Rule> rules = new ArrayList<Rule>();
List<Symbolizer> symbolizers = new ArrayList<Symbolizer>();
List<Style> styles = new ArrayList<Style>();
List<StyledLayer> layers = new ArrayList<StyledLayer>();
@Override
public void visit(StyledLayerDescriptor sld) {
for (StyledLayer sl : sld.getStyledLayers()) {
if (sl instanceof UserLayer) {
((UserLayer) sl).accept(this);
} else if(sl instanceof NamedLayer) {
((NamedLayer) sl).accept(this);
}
}
}
@Override
public void visit(NamedLayer layer) {
layers.add(layer);
for (Style style : layer.getStyles()) {
style.accept(this);
}
}
@Override
public void visit(UserLayer layer) {
layers.add(layer);
for (Style style : layer.getUserStyles()) {
style.accept(this);
}
}
@Override
public void visit(FeatureTypeConstraint ftc) {
}
@Override
public void visit(Style style) {
styles.add(style);
for (FeatureTypeStyle fts : style.featureTypeStyles()) {
featureTypeStyles.add(fts);
fts.accept(this);
}
}
@Override
public void visit(Rule rule) {
for (Symbolizer symbolizer : rule.symbolizers()) {
symbolizers.add(symbolizer);
}
}
@Override
public void visit(FeatureTypeStyle fts) {
for (Rule rule : fts.rules()) {
rules.add(rule);
rule.accept(this);
}
}
@Override
public void visit(Fill fill) {
}
@Override
public void visit(Stroke stroke) {
}
@Override
public void visit(Symbolizer sym) {
}
@Override
public void visit(PointSymbolizer ps) {
}
@Override
public void visit(LineSymbolizer line) {
}
@Override
public void visit(PolygonSymbolizer poly) {
}
@Override
public void visit(TextSymbolizer text) {
}
@Override
public void visit(RasterSymbolizer raster) {
}
@Override
public void visit(Graphic gr) {
}
@Override
public void visit(Mark mark) {
}
@Override
public void visit(ExternalGraphic exgr) {
}
@Override
public void visit(PointPlacement pp) {
}
@Override
public void visit(AnchorPoint ap) {
}
@Override
public void visit(Displacement dis) {
}
@Override
public void visit(LinePlacement lp) {
}
@Override
public void visit(Halo halo) {
}
@Override
public void visit(ColorMap colorMap) {
}
@Override
public void visit(ColorMapEntry colorMapEntry) {
}
@Override
public void visit(ContrastEnhancement contrastEnhancement) {
}
@Override
public void visit(ImageOutline outline) {
}
@Override
public void visit(ChannelSelection cs) {
}
@Override
public void visit(OverlapBehavior ob) {
}
@Override
public void visit(SelectedChannelType sct) {
}
@Override
public void visit(ShadedRelief sr) {
}
}