private void assertStyleApplicableForAtLeastOneLayer( List<Layer> layers, StyleRef style, String name ) throws OWSException { for ( Layer layer : layers ) { if ( layer.isStyleApplicable( style ) ) { return; } } throw new OWSException( "Style " + style.getName() + " is not defined for layer " + name + ".", "StyleNotDefined", "styles" ); }
private List<LayerData> checkStyleValidAndBuildLayerDataList( org.deegree.protocol.wms.ops.GetMap gm, List<String> headers, double scale, ListIterator<LayerQuery> queryIter ) throws OWSException { List<LayerData> layerDataList = new ArrayList<LayerData>(); for ( LayerRef lr : gm.getLayers() ) { LayerQuery query = queryIter.next(); List<Layer> layers = getAllLayers( themeMap.get( lr.getName() ) ); assertStyleApplicableForAtLeastOneLayer( layers, query.getStyle(), lr.getName() ); for ( org.deegree.layer.Layer layer : layers ) { if ( layer.getMetadata().getScaleDenominators().first > scale || layer.getMetadata().getScaleDenominators().second < scale ) { continue; } if ( layer.isStyleApplicable( query.getStyle() ) ) { layerDataList.add( layer.mapQuery( query, headers ) ); } } } return layerDataList; }