package com.c2c.style; import org.geotools.styling.Rule; import org.geotools.util.Range; import org.opengis.filter.Filter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; /** * User: jeichar * Date: Sep 6, 2010 * Time: 3:23:04 PM */ public class LegendDataGatherer extends AbstractStyleVisitor { SortedSet<Representation> representations = new TreeSet<Representation>(); @Override public void visit(Rule rule) { RangeReader rangeReader = new RangeReader(); Filter filter = rule.getFilter(); if (filter != null) { rule.getFilter().accept(rangeReader, null); Range range = rangeReader.getRange(); RepresentationReader representationReader = new RepresentationReader(range); rule.accept(representationReader); Representation r = representationReader.getRepresentation(); if (representations.contains(r)) { representations.remove(r); } representations.add(r); } } public Collection<Representation> getRepresentations() { return Collections.unmodifiableCollection(representations); } }