org.eclipse.jetty.util.resource

## Class Resource

- java.lang.Object
- - org.eclipse.jetty.util.resource.Resource

All Implemented Interfaces:
  ResourceFactory

Direct Known Subclasses:
  ResourceCollection, URLResource

    public abstract class Resource
    extends Object
    implements ResourceFactory

Abstract resource class.

### Field Summary

Fields
`static boolean` `__defaultUseCaches`

### Constructor Summary

Constructors
Constructor and Description
`Resource()`

### Method Summary

Methods
`abstract Resource` `addPath(String path)` Returns the resource contained inside the current resource with the given name.
`void` `copyTo(File destination)`
`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
`Resource` `getResource(String path)` Get a resource from withing this resource.
`URI` `getURI()` Returns an URI representing the given resource
`abstract URL` `getURL()` Returns an URL representing the given resource
`abstract boolean` `isContainedIn(Resource r)`
`static boolean` `isContainedIn(Resource r, Resource containingResource)`
`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(File file)`
`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(URI uri)` Construct a resource from a uri.
`static Resource` `newResource(URL url)` Construct a resource from a url.
`static Resource` `newSystemResource(String resource)` Construct a system resource from a string.
`abstract void` `release()` Release any temporary 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.
`static URL` `toURL(File file)` Generate a properly encoded URL from a `File` instance.
`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(URI uri)
                                throws IOException

Construct a resource from a uri.

Parameters:
  `uri` - A URI.
Returns:
  A Resource object.
Throws:
  `IOException` - Problem accessing URI

#### 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` - Problem accessing URL

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

#### newResource

    public static Resource newResource(File file)
                                throws MalformedURLException,
                                       IOException

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.

Parameters:
  `resource` - Resource as string representation
Returns:
  The new Resource
Throws:
  `IOException` - Problem accessing resource.

#### 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 `Class.getResource(String)` 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 `ClassLoader.getSystemResource(String)` this method does not check for normal resources.

Parameters:
  `name` - The relative name of the resource
  `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

#### isContainedIn

    public static boolean isContainedIn(Resource r,
                        Resource containingResource)
                                 throws MalformedURLException

Throws:
  `MalformedURLException`

#### finalize

    protected void finalize()

Overrides:
  `finalize` in class `Object`

#### isContainedIn

    public abstract boolean isContainedIn(Resource r)
                                   throws MalformedURLException

Throws:
  `MalformedURLException`

#### release

    public abstract void release()

Release any temporary 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

#### getURI

    public URI getURI()

Returns an URI 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`

#### getResource

    public Resource getResource(String path)

Get a resource from withing this resource.

This method is essentially an alias for `addPath(String)`, but without checked exceptions. This method satisfied the `ResourceFactory` interface.

Specified by:
  `getResource` in interface `ResourceFactory`
Parameters:
  `path` - The path to the resource
Returns:
  The resource or null
See Also:
  `ResourceFactory.getResource(java.lang.String)`

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

#### copyTo

    public void copyTo(File destination)
                throws IOException

Throws:
  `IOException`

#### toURL

    public static URL toURL(File file)
                     throws MalformedURLException

Generate a properly encoded URL from a `File` instance.

Parameters:
  `file` - Target file.
Returns:
  URL of the target file.
Throws:
  `MalformedURLException`