static List<LegendItem> prepareLegend( Style style, Java2DRenderer renderer, Java2DTextRenderer textRenderer,
Java2DRasterRenderer rasterRenderer ) {
List<LegendItem> items = new LinkedList<LegendItem>();
LinkedList<Class<?>> ruleTypes = style.getRuleTypes();
Iterator<Class<?>> types = ruleTypes.iterator();
LinkedList<String> ruleTitles = style.getRuleTitles();
Iterator<String> titles = ruleTitles.iterator();
LinkedList<Pair<Continuation<LinkedList<Symbolizer<?>>>, DoublePair>> rules;
rules = new LinkedList<Pair<Continuation<LinkedList<Symbolizer<?>>>, DoublePair>>( style.getRules() );
Iterator<Pair<Continuation<LinkedList<Symbolizer<?>>>, DoublePair>> ruleIterator = rules.iterator();
ArrayList<LinkedList<Styling>> bases = style.getBases();
for ( LinkedList<Styling> styles : bases ) {
boolean raster = false;
for ( Styling s : styles ) {
if ( s instanceof RasterStyling ) {
items.add( new RasterLegendItem( (RasterStyling) s, renderer, rasterRenderer, textRenderer ) );
raster = true;
}
}
if ( !raster ) {
LegendItem item = new StandardLegendItem( styles, ruleIterator.next().first, types.next(),
titles.next(), renderer, textRenderer );
items.add( item );
}
}
return items;
}