@Override public <T extends Resource> ResourceMetadata<T> getResourceMetadata( Class<? extends ResourceProvider<T>> providerClass, String id ) { return (ResourceMetadata<T>) resourceMetadata.get( new DefaultResourceIdentifier<T>( providerClass, id ) ); }
@Override public <T extends Resource> T getResource( Class<? extends ResourceProvider<T>> providerClass, String id ) { return (T) resources.get( new DefaultResourceIdentifier( providerClass, id ) ); }
public static List<ResourceIdentifier<StyleStore>> getStyleDeps( List<StyleRefType> styles ) { List<ResourceIdentifier<StyleStore>> list = new ArrayList<ResourceIdentifier<StyleStore>>(); for ( StyleRefType srt : styles ) { String id = srt.getStyleStoreId(); list.add( new DefaultResourceIdentifier<StyleStore>( StyleStoreProvider.class, id ) ); } return list; }
@Override public ResourceBuilder<FeatureStore> prepare() { try { SQLFeatureStoreJAXB cfg = (SQLFeatureStoreJAXB) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, CONFIG_SCHEMA, location.getAsStream(), workspace ); String connid = cfg.getJDBCConnId().getValue(); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, connid ) ); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, "LOCK_DB" ) ); return new SqlFeatureStoreBuilder( this, cfg, workspace ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<FeatureStore> prepare() { try { MemoryFeatureStoreConfig config = (MemoryFeatureStoreConfig) unmarshall( "org.deegree.feature.persistence.memory.jaxb", CONFIG_SCHEMA, location.getAsStream(), workspace ); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, "LOCK_DB" ) ); return new MemoryFeatureStoreBuilder( this, config, workspace ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<Theme> prepare() { try { RemoteWMSThemes cfg = (RemoteWMSThemes) unmarshall( "org.deegree.theme.persistence.remotewms.jaxb", provider.getSchema(), location.getAsStream(), workspace ); String id = cfg.getRemoteWMSId(); String lid = cfg.getLayerStoreId(); dependencies.add( new DefaultResourceIdentifier<LayerStore>( LayerStoreProvider.class, lid ) ); dependencies.add( new DefaultResourceIdentifier<RemoteOWS>( RemoteOWSProvider.class, id ) ); return new RemoteWmsThemeBuilder( this, workspace, cfg ); } catch ( Exception e ) { throw new ResourceInitException( "Could not parse remote WMS theme config.", e ); } }
@Override public ResourceBuilder<TileStore> prepare() { try { org.deegree.tile.persistence.merge.jaxb.MergingTileStore cfg; cfg = (org.deegree.tile.persistence.merge.jaxb.MergingTileStore) unmarshall( JAXB_NAMESPACE, provider.getSchema(), location.getAsStream(), workspace ); dependencies.add( new DefaultResourceIdentifier<TileMatrixSet>( TileMatrixSetProvider.class, cfg.getTileMatrixSetId() ) ); for ( String tileStoreId : cfg.getTileStoreId() ) { dependencies.add( new DefaultResourceIdentifier<TileStore>( TileStoreProvider.class, tileStoreId ) ); } return new MergingTileStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Could not prepare MergingTileStore: " + e.getLocalizedMessage(), e ); } } }
@Override public SpringConnectionProviderBuilder prepare() { final SpringConnectionProviderConfig config; try { config = (SpringConnectionProviderConfig) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, CONFIG_SCHEMA, location.getAsStream(), workspace ); final String applicationContextHolder = config.getApplicationContextHolder(); dependencies.add( new DefaultResourceIdentifier<ApplicationContextHolder>( ApplicationContextHolderProvider.class, applicationContextHolder ) ); } catch ( Exception e ) { LOG.trace( "Stack trace:", e ); throw new ResourceInitException( e.getLocalizedMessage(), e ); } return new SpringConnectionProviderBuilder( workspace, this, config ); } }
/** * Returns a list of possible resource identifiers for a given workspace path. * * @param workspace * @param path * @return */ public static List<ResourceIdentifier<?>> getPossibleIdentifiers( Workspace workspace, String path ) { List<ResourceManager<?>> list = getManagersForWorkspacePath( workspace, path ); List<ResourceIdentifier<?>> result = new ArrayList<ResourceIdentifier<?>>(); for ( ResourceManager<?> mgr : list ) { Class<?> cls = mgr.getMetadata().getProviderClass(); int one = mgr.getMetadata().getWorkspacePath().endsWith( "/" ) ? 0 : 1; String id = path.substring( mgr.getMetadata().getWorkspacePath().length() + one ); result.add( new DefaultResourceIdentifier( cls, id ) ); } return result; }
@Override public ResourceBuilder<RenderableStore> prepare() { try { RenderableSQLStoreConfig config = (RenderableSQLStoreConfig) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, config.getJDBCConnId() ) ); return new SqlRenderableStoreBuilder( config, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<FeatureStore> prepare() { SimpleSQLFeatureStoreConfig config; try { config = (SimpleSQLFeatureStoreConfig) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, CONFIG_SCHEMA, location.getAsStream(), workspace ); String connId = config.getConnectionPoolId(); if ( connId == null ) { connId = config.getJDBCConnId(); } dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, connId ) ); return new SimpleSqlFeatureStoreBuilder( this, config, workspace ); } catch ( Exception e ) { LOG.trace( "Stack trace:", e ); throw new ResourceInitException( e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileStore> prepare() { try { org.deegree.tile.persistence.cache.jaxb.CachingTileStore cfg; cfg = (org.deegree.tile.persistence.cache.jaxb.CachingTileStore) unmarshall( "org.deegree.tile.persistence.cache.jaxb", provider.getSchema(), location.getAsStream(), workspace ); String tsid = cfg.getTileStoreId(); dependencies.add( new DefaultResourceIdentifier<TileStore>( TileStoreProvider.class, tsid ) ); return new CachingTileStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Could not prepare tile store: " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileStore> prepare() { try { RemoteWMSTileStoreJAXB config = (RemoteWMSTileStoreJAXB) unmarshall( JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); String wmsId = config.getRemoteWMSId(); dependencies.add( new DefaultResourceIdentifier<RemoteOWS>( RemoteOWSProvider.class, wmsId ) ); return new RemoteWmsTileStoreBuilder( config, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to prepare " + location.getIdentifier() + ": " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<LayerStore> prepare() { try { RemoteWMSLayers cfg = (RemoteWMSLayers) unmarshall( "org.deegree.layer.persistence.remotewms.jaxb", provider.getSchema(), location.getAsStream(), workspace ); String id = cfg.getRemoteWMSId(); dependencies.add( new DefaultResourceIdentifier<RemoteOWS>( RemoteOWSProvider.class, id ) ); return new RemoteWmsLayerStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Could not parse remote WMS layer store config.", e ); } }
@Override public ResourceBuilder<Theme> prepare() { String pkg = "org.deegree.theme.persistence.standard.jaxb"; try { Themes cfg; cfg = (Themes) unmarshall( pkg, provider.getSchema(), location.getAsStream(), workspace ); for ( String id : cfg.getLayerStoreId() ) { softDependencies.add( new DefaultResourceIdentifier<LayerStore>( LayerStoreProvider.class, id ) ); } return new StandardThemeBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Could not parse theme configuration file.", e ); } }
@Override public ResourceBuilder<MetadataStore<? extends MetadataRecord>> prepare() { EbrimEOMDStoreConfig storeConfig; try { storeConfig = (EbrimEOMDStoreConfig) JAXBUtils.unmarshall( CONFIG_JAXB_PACKAGE, provider.getSchema(), location.getAsStream(), workspace ); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, storeConfig.getJDBCConnId() ) ); return new EbrimEOMDStoreBuilder( this, workspace, storeConfig ); } catch ( Exception e ) { String msg = Messages.getMessage( "ERROR_IN_CONFIG_FILE", location.getIdentifier(), e.getMessage() ); throw new ResourceInitException( msg, e ); } }
@Override public ResourceBuilder<MetadataStore<? extends MetadataRecord>> prepare() { try { ISOMetadataStoreConfig cfg = (ISOMetadataStoreConfig) JAXBUtils.unmarshall( "org.deegree.metadata.persistence.iso19115.jaxb", provider.getSchema(), location.getAsStream(), workspace ); dependencies.add( new DefaultResourceIdentifier<ConnectionProvider>( ConnectionProviderProvider.class, cfg.getJDBCConnId() ) ); return new IsoMetadataStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { String msg = Messages.getMessage( "ERROR_IN_CONFIG_FILE", location.getIdentifier(), e.getMessage() ); throw new ResourceInitException( msg, e ); } }
@Override public ResourceBuilder<TileStore> prepare() { try { GeoTIFFTileStoreJAXB cfg = (GeoTIFFTileStoreJAXB) unmarshall( "org.deegree.tile.persistence.geotiff.jaxb", provider.getSchema(), location.getAsStream(), workspace ); for ( GeoTIFFTileStoreJAXB.TileDataSet tds : cfg.getTileDataSet() ) { dependencies.add( new DefaultResourceIdentifier<TileMatrixSet>( TileMatrixSetProvider.class, tds.getTileMatrixSetId() ) ); } return new GeoTiffTileStoreBuilder( cfg, workspace, this ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to prepare resource " + getIdentifier() + ": " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<TileStore> prepare() { try { GdalTileStoreJaxb cfg = (GdalTileStoreJaxb) unmarshall( "org.deegree.tile.persistence.gdal.jaxb", provider.getSchema(), location.getAsStream(), workspace ); for ( GdalTileStoreJaxb.TileDataSet tds : cfg.getTileDataSet() ) { dependencies.add( new DefaultResourceIdentifier<TileMatrixSet>( TileMatrixSetProvider.class, tds.getTileMatrixSetId() ) ); } return new GdalTileStoreBuilder( cfg, workspace, this ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to prepare resource " + getIdentifier() + ": " + e.getLocalizedMessage(), e ); } }
@Override public ResourceBuilder<LayerStore> prepare() { try { TileLayers cfg = (TileLayers) unmarshall( "org.deegree.layer.persistence.tile.jaxb", provider.getSchema(), location.getAsStream(), workspace ); for ( TileLayerType lay : cfg.getTileLayer() ) { for ( TileLayerType.TileDataSet tds : lay.getTileDataSet() ) { dependencies.add( new DefaultResourceIdentifier<TileStore>( TileStoreProvider.class, tds.getTileStoreId() ) ); } } return new TileLayerStoreBuilder( cfg, this, workspace ); } catch ( Exception e ) { throw new ResourceInitException( "Unable to create tile layer store.", e ); } }