## org.mortbay.util
Class Resource

    java.lang.Object
      |
      +--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.22.2.2 2003/09/25 07:51:46 gregwilkins Exp $
Author:
  Nuno Pregui�a, 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.
`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
`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.
    `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.
    `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.

    `java.io.IOException`

### 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.

    `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

    `java.io.IOException`

### getOutputStream

    public abstract java.io.OutputStream getOutputStream()
                                                  throws java.io.IOException,
                                                         java.lang.SecurityException

  Returns an output stream to the resource

    `java.io.IOException`
    `java.lang.SecurityException`

### delete

    public abstract boolean delete()
                            throws java.lang.SecurityException

  Deletes the given resource

    `java.lang.SecurityException`

### renameTo

    public abstract boolean renameTo(Resource dest)
                              throws java.lang.SecurityException

  Rename the given resource

    `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.
    `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

    `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
    `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.
    `java.io.IOException`

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