    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class org.w3c.tools.resources.DirectoryResource

    java.lang.Object
       |
       +----org.w3c.tools.resources.AttributeHolder
               |
               +----org.w3c.tools.resources.Resource
                       |
                       +----org.w3c.tools.resources.FramedResource
                               |
                               +----org.w3c.tools.resources.AbstractContainer
                                       |
                                       +----org.w3c.tools.resources.ContainerResource
                                               |
                                               +----org.w3c.tools.resources.DirectoryResource

public class DirectoryResource
extends ContainerResource

A simple, and reasonably efficient directory resource.

##

ATTR_DIRECTORY
  Attribute index - The index for our directory attribute.
ATTR_DIRSTAMP
  Attribute index - The last time we physically visited the directory.
ATTR_EXTENSIBLE
  Attribute index - The index of wether we are extensible.
ATTR_INDEXER
  Attribute index - The indexer to use for that directory, if any.

##

DirectoryResource()

##

createDefaultResource(String)
  Create a default child resource in that container.
createDefaultResource(String, RequestInterface)
  Try creating a default resource having the given name.
createDirectoryResource(String)
  Create a DirectoryResource and the physical directory too.
createResource(String)
  Create a Resource and the physical file too.
createResource(String, RequestInterface)
  Create a Resource and the physical file too.
delete()
  Delete this directory resource, for ever.
enumerateAllResourceIdentifiers()
  Enumerate all available children resource identifiers.
enumerateResourceIdentifiers(boolean)
  Enumerate all available children resource identifiers.
getDirectory()
  Get the physical directory exported by this resource.
getDirStamp()
  Get the absolute time at which we examined the physicall directory.
getExtensibleFlag()
  Get the extensible flag value.
getIndexedName(String)
  Get the name of the resource relative to the given filename.
getIndexer(ResourceContext)
  Get the indexer out of the given context.
index(String, Hashtable, RequestInterface)
  Index a Resource.
initialize(Object[])
  Initialize this directory resource with the given set of attributes.
lookup(String)
  Lookup the resource having the given name in this directory.
reindex()
  Reindex recursivly all the resources from this DirectoryResource.
resourceRemoved(StructureChangedEvent)
  A resource is about to be removed This handles the `RESOURCE_REMOVED` kind of events.
setValue(int, Object)
  Set some of this resource attribute.
updateDefaultChildAttributes(Hashtable)
  Initialize and register a new resource into this directory.
verify()
  Was return false (don't khow why)

##

ATTR_DIRECTORY

     protected static int ATTR_DIRECTORY

  Attribute index - The index for our directory attribute.

ATTR_DIRSTAMP

     protected static int ATTR_DIRSTAMP

  Attribute index - The last time we physically visited the directory.

ATTR_INDEXER

     protected static int ATTR_INDEXER

  Attribute index - The indexer to use for that directory, if any.

ATTR_EXTENSIBLE

     protected static int ATTR_EXTENSIBLE

  Attribute index - The index of wether we are extensible.

##

DirectoryResource

     public DirectoryResource()

##

getIndexer

     protected ResourceReference getIndexer(ResourceContext c)

  Get the indexer out of the given context.

  Returns:
    A ResourceIndexer instance, guaranteeed not to be null.

setValue

     public void setValue(int idx,
                          Object value)

  Set some of this resource attribute.

  Overrides:
    setValue in class FramedResource

getDirectory

     public File getDirectory()

  Get the physical directory exported by this resource.

  Returns:
    A non-null File object giving the directory of this resource.

getDirStamp

     public long getDirStamp()

  Get the absolute time at which we examined the physicall directory.

  Returns:
    The date (as a long number of ms since Java epoch), or -1 if we never examined it before.

getExtensibleFlag

     public boolean getExtensibleFlag()

  Get the extensible flag value. A DirectoryResource is extensible, if it is allowed to create new resources out of the file system knowledge on the fly.

  Setting this flag might slow down the server. It unfortunatelly defaults to true until I have a decent admin program.

  Returns:
    A boolean true if the directory is extensible.

resourceRemoved

     public void resourceRemoved(StructureChangedEvent evt)

  A resource is about to be removed This handles the `RESOURCE_REMOVED` kind of events.

  Parameters:
    evt - The event describing the change.
  Overrides:
    resourceRemoved in class ContainerResource

createDirectoryResource

     public ResourceReference createDirectoryResource(String name)

  Create a DirectoryResource and the physical directory too.

  Parameters:
    name - the name of the resource.
  Returns:
    A ResourceReference instance.

createResource

     public ResourceReference createResource(String name)

  Create a Resource and the physical file too.

  Parameters:
    name - the name of the resource.
  Returns:
    A ResourceReference instance.

createResource

     public ResourceReference createResource(String name,
                                             RequestInterface req)

  Create a Resource and the physical file too.

  Parameters:
    name - the name of the resource.
    req - the protocol request.
  Returns:
    A ResourceReference instance.

index

     protected Resource index(String name,
                              Hashtable defs,
                              RequestInterface req)

  Index a Resource. Call the indexer.

  Parameters:
    name - The name of the resource to index.
    defs - The defaults attributes.
    req - The protocol request.
  Returns:
    A resource instance.
  See Also:
    SampleResourceIndexer

getIndexedName

     protected String getIndexedName(String name)

  Get the name of the resource relative to the given filename.

  Parameters:
    name - The name of the file.
  Returns:
    a String, the resource name.
  See Also:
    SampleResourceIndexer

createDefaultResource

     public synchronized ResourceReference createDefaultResource(String name)

  Create a default child resource in that container.

  Overrides:
    createDefaultResource in class ContainerResource

createDefaultResource

     protected synchronized ResourceReference createDefaultResource(String name,
                                                                    RequestInterface req)

  Try creating a default resource having the given name. This method will make its best effort to create a default resource having this name in the directory. If a file with this name exists, it will check the pre-defined admin extensions and look for a match. If a directory with this name exists, and admin allows to do so, it will create a sub-directory resource.

  Parameters:
    name - The name of the resource to try to create.
    req - The incomming request
  Returns:
    A Resource instance, if possible, null otherwise.

updateDefaultChildAttributes

     protected ResourceContext updateDefaultChildAttributes(Hashtable attrs)

  Initialize and register a new resource into this directory.

  Parameters:
    resource - The uninitialized resource to be added.
  Overrides:
    updateDefaultChildAttributes in class ContainerResource

reindex

     public synchronized void reindex()

  Reindex recursivly all the resources from this DirectoryResource.

enumerateAllResourceIdentifiers

     protected synchronized Enumeration enumerateAllResourceIdentifiers()

  Enumerate all available children resource identifiers. This method requires that we create all our pending resources.

  Returns:
    An enumeration of all our resources.

enumerateResourceIdentifiers

     public synchronized Enumeration enumerateResourceIdentifiers(boolean all)

  Enumerate all available children resource identifiers. This method requires that we create all our pending resources if we are in the extensible mode...too bad !

  Returns:
    An enumeration of all our resources.
  Overrides:
    enumerateResourceIdentifiers in class ContainerResource

lookup

     public ResourceReference lookup(String name)

  Lookup the resource having the given name in this directory.

  Parameters:
    name - The name of the resource.
  Returns:
    A resource instance, or null.
  Overrides:
    lookup in class ContainerResource

delete

     public synchronized void delete() throws MultipleLockException

  Delete this directory resource, for ever. This method will delete the directory resource, and its associated store, along with any of the sub-resources it contains. Deleting the root directory of your server might take sometime...

  Once the resource is deleted, it isx1 removed from its inital store and will not be unpickleable any more.

  Throws: MultipleLockException
    if someone has locked this resource.
  Overrides:
    delete in class ContainerResource

verify

     public synchronized boolean verify()

  Was return false (don't khow why)

initialize

     public void initialize(Object values[])

  Initialize this directory resource with the given set of attributes.

  Parameters:
    values - The attribute values.
  Overrides:
    initialize in class ContainerResource

    All Packages  Class Hierarchy  This Package  Previous  Next  Index