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