@Override public <T extends Resource> List<ResourceIdentifier<T>> getResourcesOfType( Class<? extends ResourceProvider<T>> providerClass ) { List<ResourceIdentifier<T>> list = new ArrayList<ResourceIdentifier<T>>(); for ( ResourceIdentifier<?> id : resources.keySet() ) { if ( id.getProvider().equals( providerClass ) ) { list.add( (ResourceIdentifier) id ); } } return list; }
@Override public void addExtraResource( ResourceLocation<? extends Resource> location ) { List<ResourceLocation<? extends Resource>> list = extraResources.get( location.getIdentifier().getProvider() ); if ( list == null ) { list = new ArrayList<ResourceLocation<? extends Resource>>(); extraResources.put( location.getIdentifier().getProvider(), list ); } list.add( location ); }
public <T extends Resource> void addBuilder( ResourceIdentifier<T> id, ResourceBuilder<T> builder ) { map.put( workspace.getResourceMetadata( id.getProvider(), id.getId() ), builder ); }
@Override public boolean equals( Object obj ) { if ( !( obj instanceof ResourceIdentifier ) ) { return false; } ResourceIdentifier<? extends Resource> id = (ResourceIdentifier<?>) obj; return getId().equals( id.getId() ) && getProvider().equals( id.getProvider() ); }
@Override public <T extends Resource> void add( ResourceLocation<T> location ) { LOG.info( "Scanning {}", location.getIdentifier() ); ResourceManager<T> mgr = (ResourceManager) resourceManagers.get( location.getIdentifier().getProvider() ); ResourceMetadata<T> md = mgr.add( location ); resourceMetadata.put( md.getIdentifier(), md ); }
public <T extends Resource> ResourceBuilder<T> getBuilder( ResourceIdentifier<T> id ) { ResourceBuilder<T> builder = (ResourceBuilder<T>) map.get( workspace.getResourceMetadata( id.getProvider(), id.getId() ) ); if ( builder == null ) { builder = workspace.prepare( id ); } return builder; }
@Override public <T extends Resource> ResourceLocation<T> persist( ResourceLocation<T> location ) { ResourceManager<?> mgr = managers.get( location.getIdentifier().getProvider() ); File file = new File( directory, mgr.getMetadata().getWorkspacePath() ); file = new File( file, location.getIdentifier().getId() + ".xml" ); file.getParentFile().mkdirs(); try { // copy to avoid persisting from same file File tmp = File.createTempFile( "config", ".xml" ); FileUtils.copyInputStreamToFile( location.getAsStream(), tmp ); tmp.renameTo( file ); return new DefaultResourceLocation<T>( file, location.getIdentifier() ); } catch ( Exception e ) { throw new ResourceException( "Could not persist resource location: " + e.getLocalizedMessage(), e ); } }
/** * Returns all available processes. * * @return available process, may be empty, but never <code>null</code> */ public Map<CodeType, WPSProcess> getProcesses() { Map<CodeType, WPSProcess> processes = new HashMap<CodeType, WPSProcess>(); for ( ResourceIdentifier<ProcessProvider> rid : workspace.getResourcesOfType( ProcessProviderProvider.class ) ) { ProcessProvider prov = workspace.getResource( rid.getProvider(), rid.getId() ); if ( prov != null ) { Map<CodeType, ? extends WPSProcess> idToProcess = prov.getProcesses(); if ( idToProcess != null ) { processes.putAll( idToProcess ); } } } return processes; }
List<ResourceIdentifier<FeatureStore>> stores = workspace.getResourcesOfType( FeatureStoreProvider.class ); for ( ResourceIdentifier<FeatureStore> id : stores ) { FeatureStore store = workspace.getResource( id.getProvider(), id.getId() ); if ( store != null ) { addStore( store );
/** * Returns the process with the specified identifier. * * @param id * identifier of the process, must not be <code>null</code> * @return process with the specified identifier or <code>null</code> if no such process exists */ public WPSProcess getProcess( CodeType id ) { WPSProcess process = null; for ( ResourceIdentifier<ProcessProvider> rid : workspace.getResourcesOfType( ProcessProviderProvider.class ) ) { ProcessProvider prov = workspace.getResource( rid.getProvider(), rid.getId() ); process = prov.getProcess( id ); if ( process != null ) { break; } } return process; }
List<MetadataStore<? extends MetadataRecord>> availableStores = new ArrayList<MetadataStore<?>>(); for ( ResourceIdentifier<MetadataStore<? extends MetadataRecord>> id : stores ) { MetadataStore<? extends MetadataRecord> str = workspace.getResource( id.getProvider(), id.getId() ); if ( str != null ) { availableStores.add( str );
/** * Destroys and initializes all resources connected to the resource with the given id. * * @param workspace * may not be <code>null</code> * @param id * may not be <code>null</code> */ public static void reinitializeChain( Workspace workspace, ResourceIdentifier<? extends Resource> id ) { ResourceNode<? extends Resource> node = workspace.getDependencyGraph().getNode( id ); List<ResourceMetadata<? extends Resource>> list = new ArrayList<ResourceMetadata<? extends Resource>>(); ResourceMetadata<? extends Resource> meta = workspace.getResourceMetadata( id.getProvider(), id.getId() ); if ( meta == null ) { return; } list.add( meta ); collectDependencies( list, node ); collectDependents( list, node ); ResourceGraph g = new ResourceGraph( list ); list = g.toSortedList(); workspace.destroy( list.get( 0 ).getIdentifier() ); for ( ResourceMetadata<? extends Resource> md : list ) { workspace.add( md.getLocation() ); workspace.init( md.getIdentifier(), null ); } }
return getResource( id.getProvider(), id.getId() );