org.mortbay.resource
Class Resource

java.lang.Object
  extended by org.mortbay.resource.Resource
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
URLResource

public abstract class Resource
extends Object
implements Serializable

Abstract resource class.

Author:
Nuno Pregui´┐Ża, Greg Wilkins (gregw)
See Also:
Serialized Form

Field Summary
static boolean __defaultUseCaches
           
 
Constructor Summary
Resource()
           
 
Method Summary
abstract  Resource addPath(String path)
          Returns the resource contained inside the current resource with the given name.
abstract  boolean delete()
          Deletes the given resource
 String encode(String uri)
          Encode according to this resource type.
abstract  boolean exists()
          Returns true if the respresened resource exists.
protected  void finalize()
           
 URL getAlias()
           
 Object getAssociate()
           
static boolean getDefaultUseCaches()
           
abstract  File getFile()
          Returns an File representing the given resource or NULL if this is not possible.
abstract  InputStream getInputStream()
          Returns an input stream to the resource
 String getListHTML(String base, boolean parent)
          Get the resource list as a HTML directory listing.
abstract  String getName()
          Returns the name of the resource
abstract  OutputStream getOutputStream()
          Returns an output stream to the resource
abstract  URL getURL()
          Returns an URL representing the given resource
abstract  boolean isDirectory()
          Returns true if the respresenetd resource is a container/directory.
abstract  long lastModified()
          Returns the last modified time
abstract  long length()
          Return the length of the resource
abstract  String[] list()
          Returns a list of resource names contained in the given resource The resource names are not URL encoded.
static Resource newClassPathResource(String resource)
          Find a classpath resource.
static Resource newClassPathResource(String name, boolean useCaches, boolean checkParents)
          Find a classpath resource.
static Resource newResource(String resource)
          Construct a resource from a string.
static Resource newResource(String resource, boolean useCaches)
          Construct a resource from a string.
static Resource newResource(URL url)
          Construct a resource from a url.
static Resource newResource(URL url, boolean useCaches)
          Construct a resource from a url.
static Resource newSystemResource(String resource)
          Construct a system resource from a string.
abstract  void release()
          Release any resources held by the resource.
abstract  boolean renameTo(Resource dest)
          Rename the given resource
 void setAssociate(Object o)
           
static void setDefaultUseCaches(boolean useCaches)
          Change the default setting for url connection caches.
 void writeTo(OutputStream out, long start, long count)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

__defaultUseCaches

public static boolean __defaultUseCaches
Constructor Detail

Resource

public Resource()
Method Detail

setDefaultUseCaches

public static void setDefaultUseCaches(boolean useCaches)
Change the default setting for url connection caches. Subsequent URLConnections will use this default.

Parameters:
useCaches -

getDefaultUseCaches

public static boolean getDefaultUseCaches()

newResource

public static Resource newResource(URL url)
                            throws IOException
Construct a resource from a url.

Parameters:
url - A URL.
Returns:
A Resource object.
Throws:
IOException

newResource

public static Resource newResource(URL url,
                                   boolean useCaches)
Construct a resource from a url.

Parameters:
url - the url for which to make the resource
useCaches - true enables URLConnection caching if applicable to the type of resource
Returns:

newResource

public static Resource newResource(String resource)
                            throws MalformedURLException,
                                   IOException
Construct a resource from a string.

Parameters:
resource - A URL or filename.
Returns:
A Resource object.
Throws:
MalformedURLException
IOException

newResource

public static Resource newResource(String resource,
                                   boolean useCaches)
                            throws MalformedURLException,
                                   IOException
Construct a resource from a string.

Parameters:
resource - A URL or filename.
useCaches - controls URLConnection caching
Returns:
A Resource object.
Throws:
MalformedURLException
IOException

newSystemResource

public static Resource newSystemResource(String resource)
                                  throws IOException
Construct a system resource from a string. The resource is tried as classloader resource before being treated as a normal resource.

Throws:
IOException

newClassPathResource

public static Resource newClassPathResource(String resource)
Find a classpath resource.


newClassPathResource

public static Resource newClassPathResource(String name,
                                            boolean useCaches,
                                            boolean checkParents)
Find a classpath resource. The method is used to lookup the resource. If it is not found, then the Loader.getResource(Class, String, boolean) method is used. If it is still not found, then ClassLoader.getSystemResource(String) is used. Unlike #getSystemResource this method does not check for normal resources.

Parameters:
name - The relative name of the resouce
useCaches - True if URL caches are to be used.
checkParents - True if forced searching of parent classloaders is performed to work around loaders with inverted priorities
Returns:
Resource or null

finalize

protected void finalize()
Overrides:
finalize in class Object

release

public abstract void release()
Release any resources held by the resource.


exists

public abstract boolean exists()
Returns true if the respresened resource exists.


isDirectory

public abstract boolean isDirectory()
Returns true if the respresenetd resource is a container/directory. If the resource is not a file, resources ending with "/" are considered directories.


lastModified

public abstract long lastModified()
Returns the last modified time


length

public abstract long length()
Return the length of the resource


getURL

public abstract URL getURL()
Returns an URL representing the given resource


getFile

public abstract File getFile()
                      throws IOException
Returns an File representing the given resource or NULL if this is not possible.

Throws:
IOException

getName

public abstract String getName()
Returns the name of the resource


getInputStream

public abstract InputStream getInputStream()
                                    throws IOException
Returns an input stream to the resource

Throws:
IOException

getOutputStream

public abstract OutputStream getOutputStream()
                                      throws IOException,
                                             SecurityException
Returns an output stream to the resource

Throws:
IOException
SecurityException

delete

public abstract boolean delete()
                        throws SecurityException
Deletes the given resource

Throws:
SecurityException

renameTo

public abstract boolean renameTo(Resource dest)
                          throws SecurityException
Rename the given resource

Throws:
SecurityException

list

public abstract String[] list()
Returns a list of resource names contained in the given resource The resource names are not URL encoded.


addPath

public abstract Resource addPath(String path)
                          throws IOException,
                                 MalformedURLException
Returns the resource contained inside the current resource with the given name.

Parameters:
path - The path segment to add, which should be encoded by the encode method.
Throws:
IOException
MalformedURLException

encode

public String encode(String uri)
Encode according to this resource type. The default implementation calls URI.encodePath(uri)

Parameters:
uri -
Returns:
String encoded for this resource type.

getAssociate

public Object getAssociate()

setAssociate

public void setAssociate(Object o)

getAlias

public URL getAlias()
Returns:
The canonical Alias of this resource or null if none.

getListHTML

public String getListHTML(String base,
                          boolean parent)
                   throws IOException
Get the resource list as a HTML directory listing.

Parameters:
base - The base URL
parent - True if the parent directory should be included
Returns:
String of HTML
Throws:
IOException

writeTo

public void writeTo(OutputStream out,
                    long start,
                    long count)
             throws IOException
Parameters:
out -
start - First byte to write
count - Bytes to write or -1 for all of them.
Throws:
IOException