org.mortbay.util
Class Resource

java.lang.Object
  extended by org.mortbay.util.Resource
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
CachedResource, URLResource

public abstract class Resource
extends java.lang.Object
implements java.io.Serializable

Abstract resource class.

Version:
$Id: Resource.java,v 1.32 2009/05/16 01:53:36 gregwilkins Exp $
Author:
Nuno Preguica, Greg Wilkins (gregw)
See Also:
Serialized Form

Constructor Summary
Resource()
           
 
Method Summary
abstract  Resource addPath(java.lang.String path)
          Returns the resource contained inside the current resource with the given name.
 CachedResource cache()
           
abstract  boolean delete()
          Deletes the given resource
 java.lang.String encode(java.lang.String uri)
          Encode according to this resource type.
abstract  boolean exists()
          Returns true if the respresened resource exists.
protected  void finalize()
           
 java.net.URL getAlias()
           
 java.lang.Object getAssociate()
           
abstract  java.io.File getFile()
          Returns an File representing the given resource or NULL if this is not possible.
abstract  java.io.InputStream getInputStream()
          Returns an input stream to the resource
 java.lang.String getListHTML(java.lang.String base, boolean parent)
          Get the resource list as a HTML directory listing.
abstract  java.lang.String getName()
          Returns the name of the resource
abstract  java.io.OutputStream getOutputStream()
          Returns an output stream to the resource
abstract  java.net.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  java.lang.String[] list()
          Returns a list of resource names contained in the given resource The resource names are not URL encoded.
static Resource newResource(java.lang.String resource)
          Construct a resource from a string.
static Resource newResource(java.net.URL url)
          Construct a resource from a url.
static Resource newSystemResource(java.lang.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(java.lang.Object o)
           
 void writeTo(java.io.OutputStream out, long start, long count)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Resource

public Resource()
Method Detail

newResource

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

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

newResource

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

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

newSystemResource

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

Throws:
java.io.IOException

finalize

protected void finalize()
Overrides:
finalize in class java.lang.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 java.net.URL getURL()
Returns an URL representing the given resource


getFile

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

Throws:
java.io.IOException

getName

public abstract java.lang.String getName()
Returns the name of the resource


getInputStream

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

Throws:
java.io.IOException

getOutputStream

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

Throws:
java.io.IOException
java.lang.SecurityException

delete

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

Throws:
java.lang.SecurityException

renameTo

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

Throws:
java.lang.SecurityException

list

public abstract java.lang.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(java.lang.String path)
                          throws java.io.IOException,
                                 java.net.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:
java.io.IOException
java.net.MalformedURLException

encode

public java.lang.String encode(java.lang.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 java.lang.Object getAssociate()

setAssociate

public void setAssociate(java.lang.Object o)

getAlias

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

cache

public CachedResource cache()
                     throws java.io.IOException
Throws:
java.io.IOException

getListHTML

public java.lang.String getListHTML(java.lang.String base,
                                    boolean parent)
                             throws java.io.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:
java.io.IOException

writeTo

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


Copyright © 2004 Mortbay Consulting Pty. Ltd. All Rights Reserved.