public <T extends Resource> void addBuilder( ResourceIdentifier<T> id, ResourceBuilder<T> builder ) { map.put( workspace.getResourceMetadata( id.getProvider(), id.getId() ), builder ); }
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; }
/** * 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 ); } }