private Theme buildAutoTheme( Layer layer ) { LayerMetadata md = new LayerMetadata( null, null, null ); LayerMetadata lmd = layer.getMetadata(); md.merge( lmd ); md.setDimensions( new LinkedHashMap<String, Dimension<?>>( lmd.getDimensions() ) ); md.setStyles( new LinkedHashMap<String, Style>( lmd.getStyles() ) ); md.setLegendStyles( new LinkedHashMap<String, Style>( lmd.getLegendStyles() ) ); return new StandardTheme( md, Collections.<Theme> emptyList(), singletonList( layer ), metadata ); }
private Map<String, Layer> collectConfiguredRemoteLayers( Map<String, LayerMetadata> configured ) { Map<String, Layer> map = new LinkedHashMap<String, Layer>(); RequestOptionsType opts = cfg.getRequestOptions(); List<LayerMetadata> layers = client.getLayerTree().flattenDepthFirst(); for ( LayerMetadata md : layers ) { String name = md.getName(); LayerMetadata confMd = configured.get( name ); if ( confMd != null ) { confMd.merge( md ); confMd.setStyles( md.getStyles() ); confMd.setLegendStyles( md.getLegendStyles() ); map.put( confMd.getName(), new RemoteWMSLayer( name, confMd, client, opts ) ); } } return map; }
@Override public LayerStore build() { Map<String, Layer> layerNameToLayer = new HashMap<String, Layer>(); for ( GDALLayerType gdalLayerCfg : cfg.getGDALLayer() ) { List<ICRS> crsList = fromJaxb( gdalLayerCfg.getCRS() ); ICRS crs = crsList.isEmpty() ? null : crsList.get( 0 ); List<File> datasets = buildDatasets( gdalLayerCfg.getFile(), crs ); LayerMetadata md = buildLayerMetadata( gdalLayerCfg, datasets ); Pair<Map<String, Style>, Map<String, Style>> p = parseStyles( workspace, gdalLayerCfg.getName(), gdalLayerCfg.getStyleRef() ); md.setStyles( p.first ); md.setLegendStyles( p.second ); Layer layer = new GdalLayer( md, datasets, gdalSettings ); layerNameToLayer.put( gdalLayerCfg.getName(), layer ); } return new MultipleLayerStore( layerNameToLayer, metadata ); }
LayerStore buildManual( CoverageLayers cfg ) { Map<String, Layer> map = new HashMap<String, Layer>(); Coverage cov = workspace.getResource( CoverageProvider.class, cfg.getCoverageStoreId() ); for ( CoverageLayerType lay : cfg.getCoverageLayer() ) { LayerMetadata md = buildLayerMetadata( lay, cov ); Pair<Map<String, Style>, Map<String, Style>> p = parseStyles( workspace, lay.getName(), lay.getStyleRef() ); md.setStyles( p.first ); md.setLegendStyles( p.second ); Layer l = new CoverageLayer( md, cov instanceof AbstractRaster ? (AbstractRaster) cov : null, cov instanceof MultiResolutionRaster ? (MultiResolutionRaster) cov : null ); map.put( lay.getName(), l ); } return new MultipleLayerStore( map, metadata ); }
md.setLegendStyles( legendStyles ); return new StandardTheme( md, thms, lays, metadata );
MultipleLayerStore buildFeatureLayers() throws XMLStreamException, URISyntaxException, FeatureStoreException { Map<String, Layer> map = new LinkedHashMap<String, Layer>(); int index = -1; for ( FeatureLayerType lay : lays.getFeatureLayer() ) { ++index; QName featureType = lay.getFeatureType(); // these methods do not use the dom elements but reparse the configuration file using StAX due to bugs // in jaxb/woodstox when using multiple jaxb:dom bindings and DOMSources for XMLStreamReaders OperatorFilter filter = QueryOptionsParser.parseFilter( index, metadata.getLocation().getAsStream() ); List<SortProperty> sortBy = QueryOptionsParser.parseSortBy( index, metadata.getLocation().getAsStream() ); List<SortProperty> sortByFeatureInfo = sortBy; if ( sortBy != null && lay.getSortBy().isReverseFeatureInfo() ) { sortByFeatureInfo = new ArrayList<SortProperty>(); for ( SortProperty prop : sortBy ) { sortByFeatureInfo.add( new SortProperty( prop.getSortProperty(), !prop.getSortOrder() ) ); } } LayerMetadata md = LayerMetadataBuilder.buildMetadata( lay, featureType, store ); Pair<Map<String, Style>, Map<String, Style>> p = parseStyles( workspace, lay.getName(), lay.getStyleRef() ); md.setStyles( p.first ); md.setLegendStyles( p.second ); Layer l = new FeatureLayer( md, store, featureType, filter, sortBy, sortByFeatureInfo ); map.put( lay.getName(), l ); } return new MultipleLayerStore( map, metadata ); }