org.w3c.tools.resources
Class Resource

java.lang.Object
  |
  +--org.w3c.tools.resources.AttributeHolder
        |
        +--org.w3c.tools.resources.Resource
Direct Known Subclasses:
AuthUser, CachedResource, FramedResource, PropertySet, SampleResourceIndexer

public class Resource
extends AttributeHolder

The resource class describes an object, accessible through the server. Resource objects are required to have the following properties:

These resource objects do not define how they are accessed. See the sub-classes for specific accesses.


Field Summary
protected static int ATTR_CONTEXT
          Attribute index - The hierarchical context of the resource.
protected static int ATTR_HELP_URL
          Attribute index - The help URL for this resource (Ref doc)
protected static int ATTR_IDENTIFIER
          Attribute index - The index for the identifier attribute.
protected static int ATTR_LAST_MODIFIED
          Attribute index - The index for the last-modified attribute.
protected static int ATTR_PARENT
          Attribute index - The index for our parent attribute.
protected static int ATTR_RESOURCE_FRAMES
          Attribute index - Associated resource frames
protected static int ATTR_STORE_ENTRY
          Attribute index - The index of the resource store entry attribute.
protected static int ATTR_URL
          Attribute index - The index for our URL attribute.
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, slowpickle, values
 
Constructor Summary
Resource()
          Create an empty resource instance.
 
Method Summary
 boolean acceptUnload()
          Is that resource willing to be unloaded.
protected  void checkMultipleLock(ResourceReference rr)
          Check if this resource is loked more than one time.
 ResourceFrame[] collectFrames(java.lang.Class c)
          Collect any frame that's an instance of the given class.
 void delete()
          Delete this Resource instance, and remove it from its store.
 java.lang.Object getClone(java.lang.Object[] values)
           
protected  ResourceContext getContext()
          Get the hierarchical context for that resource.
 ResourceFrame getFrame(java.lang.Class c)
          Get the first occurence of a frame of the given class.
 ResourceFrame[] getFrames()
          Collect all frames.
 java.lang.String getHelpURL()
          Get this resource's help url.
 java.lang.String getHelpURL(java.lang.String topics)
          Get the help URL for that resource's topic.
 java.lang.String getIdentifier()
          Get this resource identifier.
 long getLastModified()
          Get this resource last modification time.
 ResourceReference getParent()
          Get this resource parent resource.
 ResourceReference getResourceReference()
          Get the ResourceReference of that resource.
 ServerInterface getServer()
          Get the server this resource is served by.
protected  ResourceSpace getSpace()
          Get the ResourceSpace where this resource is stored.
protected  SpaceEntry getSpaceEntry()
          Get the space entry for that resource.
 java.lang.Object getStoreEntry()
          Get the store entry for that resource.
 java.lang.String getURLPath()
          Get the file part of the URL this resource is attached to.
 java.lang.Object getValue(java.lang.Class c, int idx, java.lang.Object def)
          Get an attached frame attribute value.
 java.lang.Object getValue(int idx, java.lang.Object def)
           
 void initialize(java.lang.Object[] values)
           
 boolean isInitialized()
           
 boolean isUnloaded()
          unloaded?
 void markModified()
          Mark this resource as having been modified.
 void notifyUnload()
          This resource is being unloaded.
 void registerFrame(ResourceFrame frame, java.util.Hashtable defs)
          Initialize and attach a new ResourceFrame to that resource.
protected  void setContext(ResourceContext context)
          Set the given context as the current context of this resource.
protected  void setContext(ResourceContext context, boolean keepmodules)
          Set the given context as the current context of this resource.
 void setValue(java.lang.Class c, int idx, java.lang.Object val)
          Set an attached frame attribute value.
 void setValue(int idx, java.lang.Object value)
          We overide setValue, to mark the resource as modified.
 void unregisterFrame(ResourceFrame frame)
          Unregister a resource frame from the given resource.
 void updateAttributes()
          The web admin wants us to update any out of date attribute.
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, initialize, lookupAttribute, pickle, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unpickle, unpickle, unpickle, unpickleInstance, unpickleInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_STORE_ENTRY

protected static int ATTR_STORE_ENTRY
Attribute index - The index of the resource store entry attribute.

ATTR_IDENTIFIER

protected static int ATTR_IDENTIFIER
Attribute index - The index for the identifier attribute.

ATTR_RESOURCE_FRAMES

protected static int ATTR_RESOURCE_FRAMES
Attribute index - Associated resource frames

ATTR_PARENT

protected static int ATTR_PARENT
Attribute index - The index for our parent attribute.

ATTR_CONTEXT

protected static int ATTR_CONTEXT
Attribute index - The hierarchical context of the resource.

ATTR_URL

protected static int ATTR_URL
Attribute index - The index for our URL attribute.

ATTR_LAST_MODIFIED

protected static int ATTR_LAST_MODIFIED
Attribute index - The index for the last-modified attribute.

ATTR_HELP_URL

protected static int ATTR_HELP_URL
Attribute index - The help URL for this resource (Ref doc)
Constructor Detail

Resource

public Resource()
Create an empty resource instance. Initialize the instance attributes description, and its values.
Method Detail

getClone

public java.lang.Object getClone(java.lang.Object[] values)
Overrides:
getClone in class AttributeHolder

getParent

public ResourceReference getParent()
Get this resource parent resource. The parent of a resource can be either null if it is the server root resource, or any Resource.
Returns:
An instance of ResourceReference, or null

getURLPath

public java.lang.String getURLPath()
Get the file part of the URL this resource is attached to.
Returns:
An URL object specifying the location in the information space of this resource.

getServer

public ServerInterface getServer()
Get the server this resource is served by.
Returns:
The first instance of Jigsaw this resource was attached to.

getHelpURL

public java.lang.String getHelpURL()
Get this resource's help url.
Returns:
An URL, encoded as a String, or null if not available.

getValue

public java.lang.Object getValue(int idx,
                                 java.lang.Object def)
Overrides:
getValue in class AttributeHolder

getHelpURL

public java.lang.String getHelpURL(java.lang.String topics)
Get the help URL for that resource's topic.
Parameters:
topic - The topic you want help for.
Returns:
A String encoded URL, or null if none was found.

getContext

protected ResourceContext getContext()
Get the hierarchical context for that resource.
Returns:
A ResourceContext instance, guaranteed not to be null

setContext

protected void setContext(ResourceContext context)
Set the given context as the current context of this resource.
Parameters:
context - The new context.

setContext

protected void setContext(ResourceContext context,
                          boolean keepmodules)
Set the given context as the current context of this resource.
Parameters:
context - The new context.
keepmodules - If true the new context will have the same modules than the old one.

getStoreEntry

public java.lang.Object getStoreEntry()
Get the store entry for that resource. Only the resource store in charge of this resource knows about the type of the resulting object. Buy declaring the class of that object private, the resource store can assume some private access to it.
Returns:
A java Object instance, or null if no store entry is attached to that resource.

getIdentifier

public java.lang.String getIdentifier()
Get this resource identifier.
Returns:
The String value for the identifier.

getSpaceEntry

protected SpaceEntry getSpaceEntry()
Get the space entry for that resource. This Object is use to retrieve the resource in the resource space.
Returns:
A spaceEntry instance.

getSpace

protected ResourceSpace getSpace()
Get the ResourceSpace where this resource is stored.
Returns:
A ResourceSpace instance.

getResourceReference

public ResourceReference getResourceReference()
Get the ResourceReference of that resource. ResourceReference is the only public way to access a resource.
Returns:
a ResourceReference instance.

registerFrame

public void registerFrame(ResourceFrame frame,
                          java.util.Hashtable defs)
Initialize and attach a new ResourceFrame to that resource.
Parameters:
frame - An uninitialized ResourceFrame instance.
defs - A default set of attribute values.

unregisterFrame

public void unregisterFrame(ResourceFrame frame)
Unregister a resource frame from the given resource.
Parameters:
frame - The frame to unregister from the resource.

getFrames

public ResourceFrame[] getFrames()
Collect all frames.
Returns:
An array of ResourceFrame, containing a set of frames instances or null if no resource frame is available.

collectFrames

public ResourceFrame[] collectFrames(java.lang.Class c)
Collect any frame that's an instance of the given class.
Parameters:
cls - The class of frames we are looking for.
Returns:
An array of ResourceFrame, containing a set of frames instances of the given class, or null if no resource frame is available.

getFrame

public ResourceFrame getFrame(java.lang.Class c)
Get the first occurence of a frame of the given class.
Parameters:
cls - The class of te frame to look for.
Returns:
A ResourceFrame instance, or null.

getValue

public java.lang.Object getValue(java.lang.Class c,
                                 int idx,
                                 java.lang.Object def)
Get an attached frame attribute value. This method really is a short-hand that combines a getFrame and getValue method call.
Parameters:
cls - The class of the frame we want the value of.
idx - The attribute index.
def - The default value (if the attribute value isn't defined).
Returns:
The attribute value as an Object instance, or the provided default value if the attribute value isn't defined.

setValue

public void setValue(java.lang.Class c,
                     int idx,
                     java.lang.Object val)
Set an attached frame attribute value. This method really is a short-hand that combines a getFrame and a setValue method call.
Parameters:
cls - The class of the frame we want to modify.
idx - The attribute to modify.
val - The new attribute value.

getLastModified

public long getLastModified()
Get this resource last modification time.
Returns:
A long giving the date of the last modification time, or -1 if undefined.

markModified

public void markModified()
Mark this resource as having been modified.

setValue

public void setValue(int idx,
                     java.lang.Object value)
We overide setValue, to mark the resource as modified.
Parameters:
idx - The index of the attribute to modify.
value - The new attribute value.
Overrides:
setValue in class AttributeHolder

acceptUnload

public boolean acceptUnload()
Is that resource willing to be unloaded. This method is a bit tricky to implement. The guideline is that you should not dynamically change the returned value (since you can't control what happens between a call to that method and a call to the notifyUnload method).

Returning false should never be needed, except for very strange resources.

Returns:
A boolean true if the resource can be unloaded false otherwise.

notifyUnload

public void notifyUnload()
This resource is being unloaded. The resource is being unloaded from memory, perform any additional cleanup required.

isUnloaded

public boolean isUnloaded()
unloaded?
Returns:
true if the resource has been unloaded.

updateAttributes

public void updateAttributes()
The web admin wants us to update any out of date attribute.

checkMultipleLock

protected void checkMultipleLock(ResourceReference rr)
                          throws MultipleLockException
Check if this resource is loked more than one time.
Throws:
MultipleLockException - is thrown if true.

delete

public void delete()
            throws MultipleLockException
Delete this Resource instance, and remove it from its store. This method will erase definitely this resource, for ever, by removing it from its resource store (when doable).
Throws:
MultipleLockException - if someone else has locked this resource

isInitialized

public boolean isInitialized()

initialize

public void initialize(java.lang.Object[] values)
Overrides:
initialize in class AttributeHolder