package org.mapfish.print.map.image.wms; import com.codahale.metrics.MetricRegistry; import jsr166y.ForkJoinPool; import org.geotools.coverage.grid.GridCoverage2D; import org.mapfish.print.config.Template; import org.mapfish.print.map.MapLayerFactoryPlugin; import org.mapfish.print.map.geotools.AbstractGridCoverageLayerPlugin; import org.mapfish.print.map.style.StyleParser; import org.springframework.beans.factory.annotation.Autowired; import java.util.Collections; import java.util.Set; import javax.annotation.Nonnull; /** * <p>Renders WMS layers as single image.</p> * <p>Type: <code>wms</code></p> * [[examples=printwms_tyger_ny_EPSG_3857,printwms_UsaPopulation_EPSG_4326]] */ public final class WmsLayerFactoryPlugin extends AbstractGridCoverageLayerPlugin implements MapLayerFactoryPlugin<WmsLayerParam> { private static final String TYPE = "wms"; @Autowired private ForkJoinPool forkJoinPool; @Autowired private StyleParser styleParser; @Autowired private MetricRegistry metricRegistry; @Override public Set<String> getTypeNames() { return Collections.singleton(TYPE); } @Override public WmsLayerParam createParameter() { return new WmsLayerParam(); } @Nonnull @Override public WmsLayer parse( @Nonnull final Template template, @Nonnull final WmsLayerParam layerData) { String styleRef = layerData.rasterStyle; return new WmsLayer(this.forkJoinPool, super.<GridCoverage2D>createStyleSupplier(template, styleRef), layerData, this.metricRegistry, template.getConfiguration()); } }