public class VfsResource extends AbstractResource
Resource
implementation.
As of Spring 4.0, this class supports VFS 3.x on JBoss AS 6+ (package
org.jboss.vfs
) and is in particular compatible with JBoss AS 7 and
WildFly 8.
VirtualFile
Constructor and Description |
---|
VfsResource(Object resource) |
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.
|
String |
getDescription()
Return a description for this resource,
to be used for error output when working with the resource.
|
File |
getFile()
This implementation throws a FileNotFoundException, assuming
that the resource cannot be resolved to an absolute file path.
|
String |
getFilename()
This implementation always returns
null ,
assuming that this resource type does not have a filename. |
InputStream |
getInputStream()
Return an
InputStream . |
URI |
getURI()
This implementation builds a URI based on the URL returned
by
AbstractResource.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 |
isReadable()
This implementation always returns
true . |
long |
lastModified()
This implementation checks the timestamp of the underlying File,
if available.
|
getFileForLastModifiedCheck, isOpen, toString
public VfsResource(Object resource)
public InputStream getInputStream() throws IOException
InputStreamSource
InputStream
.
It is expected that each call creates a fresh stream.
This requirement is particularly important when you consider an API such
as JavaMail, which needs to be able to read the stream multiple times when
creating mail attachments. For such a use case, it is required
that each getInputStream()
call returns a fresh stream.
null
)IOException
- if the stream could not be openedMimeMessageHelper.addAttachment(String, InputStreamSource)
public boolean exists()
AbstractResource
exists
in interface Resource
exists
in class AbstractResource
public boolean isReadable()
AbstractResource
true
.isReadable
in interface Resource
isReadable
in class AbstractResource
InputStreamSource.getInputStream()
public URL getURL() throws IOException
AbstractResource
getURL
in interface Resource
getURL
in class AbstractResource
IOException
- if the resource cannot be resolved as URL,
i.e. if the resource is not available as descriptorpublic URI getURI() throws IOException
AbstractResource
AbstractResource.getURL()
.getURI
in interface Resource
getURI
in class AbstractResource
IOException
- if the resource cannot be resolved as URI,
i.e. if the resource is not available as descriptorpublic File getFile() throws IOException
AbstractResource
getFile
in interface Resource
getFile
in class AbstractResource
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
AbstractResource
contentLength
in interface Resource
contentLength
in class AbstractResource
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
AbstractResource
lastModified
in interface Resource
lastModified
in class AbstractResource
IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)AbstractResource.getFileForLastModifiedCheck()
public Resource createRelative(String relativePath) throws IOException
AbstractResource
createRelative
in interface Resource
createRelative
in class AbstractResource
relativePath
- the relative path (relative to this resource)IOException
- if the relative resource cannot be determinedpublic String getFilename()
AbstractResource
null
,
assuming that this resource type does not have a filename.getFilename
in interface Resource
getFilename
in class AbstractResource
public String getDescription()
Resource
Implementations are also encouraged to return this value
from their toString
method.
Object.toString()
public boolean equals(Object obj)
AbstractResource
equals
in class AbstractResource
Resource.getDescription()
public int hashCode()
AbstractResource
hashCode
in class AbstractResource
Resource.getDescription()