## org.mortbay.resource
Class Resource

    java.lang.Object
      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`

Copyright © 2007 Mort Bay Consulting. All Rights Reserved.