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; }