public abstract class AbstractResource extends Object implements Resource
Resource
implementations,
pre-implementing typical behavior.
The "exists" method will check whether a File or InputStream can be opened; "isOpen" will always return false; "getURL" and "getFile" throw an exception; and "toString" will return the description.
Constructor and Description |
---|
AbstractResource() |
Modifier and Type | Method and Description |
---|---|
long |
contentLength()
This implementation reads the entire InputStream to calculate the
content length.
|
Resource |
createRelative(String relativePath)
This implementation throws a FileNotFoundException, assuming
that relative resources cannot be created for this resource.
|
boolean |
equals(Object obj)
This implementation compares description strings.
|
boolean |
exists()
This implementation checks whether a File can be opened,
falling back to whether an InputStream can be opened.
|
File |
getFile()
This implementation throws a FileNotFoundException, assuming
that the resource cannot be resolved to an absolute file path.
|
protected File |
getFileForLastModifiedCheck()
Determine the File to use for timestamp checking.
|
String |
getFilename()
This implementation always returns
null ,
assuming that this resource type does not have a filename. |
URI |
getURI()
This implementation builds a URI based on the URL returned
by
getURL() . |
URL |
getURL()
This implementation throws a FileNotFoundException, assuming
that the resource cannot be resolved to a URL.
|
int |
hashCode()
This implementation returns the description's hash code.
|
boolean |
isOpen()
This implementation always returns
false . |
boolean |
isReadable()
This implementation always returns
true . |
long |
lastModified()
This implementation checks the timestamp of the underlying File,
if available.
|
String |
toString()
This implementation returns the description of this resource.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getDescription
getInputStream
public boolean exists()
public boolean isReadable()
true
.isReadable
in interface Resource
InputStreamSource.getInputStream()
public boolean isOpen()
false
.public URL getURL() throws IOException
getURL
in interface Resource
IOException
- if the resource cannot be resolved as URL,
i.e. if the resource is not available as descriptorpublic URI getURI() throws IOException
getURL()
.getURI
in interface Resource
IOException
- if the resource cannot be resolved as URI,
i.e. if the resource is not available as descriptorpublic File getFile() throws IOException
getFile
in interface Resource
IOException
- if the resource cannot be resolved as absolute
file path, i.e. if the resource is not available in a file systempublic long contentLength() throws IOException
contentLength
in interface Resource
IllegalStateException
- if InputStreamSource.getInputStream()
returns null.IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)InputStreamSource.getInputStream()
public long lastModified() throws IOException
lastModified
in interface Resource
IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)getFileForLastModifiedCheck()
protected File getFileForLastModifiedCheck() throws IOException
The default implementation delegates to getFile()
.
null
)IOException
- if the resource cannot be resolved as absolute
file path, i.e. if the resource is not available in a file systempublic Resource createRelative(String relativePath) throws IOException
createRelative
in interface Resource
relativePath
- the relative path (relative to this resource)IOException
- if the relative resource cannot be determinedpublic String getFilename()
null
,
assuming that this resource type does not have a filename.getFilename
in interface Resource
public String toString()
toString
in class Object
Resource.getDescription()
public boolean equals(Object obj)
equals
in class Object
Resource.getDescription()
public int hashCode()
hashCode
in class Object
Resource.getDescription()