public class PortletContextResource extends AbstractFileResolvingResource implements ContextResource
Resource
implementation for
PortletContext
resources, interpreting
relative paths within the portlet application root directory.
Always supports stream access and URL access, but only allows
java.io.File
access when the portlet application archive
is expanded.
PortletContext.getResourceAsStream(java.lang.String)
,
PortletContext.getRealPath(java.lang.String)
Constructor and Description |
---|
PortletContextResource(PortletContext portletContext,
String path)
Create a new PortletContextResource.
|
Modifier and Type | Method and Description |
---|---|
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
PortletContext.getResource . |
String |
getDescription()
Return a description for this resource,
to be used for error output when working with the resource.
|
File |
getFile()
This implementation resolves "file:" URLs or alternatively delegates to
PortletContext.getRealPath , throwing a FileNotFoundException
if not found or not resolvable. |
String |
getFilename()
This implementation always returns
null ,
assuming that this resource type does not have a filename. |
InputStream |
getInputStream()
This implementation delegates to
PortletContext.getResourceAsStream ,
but throws a FileNotFoundException if not found. |
String |
getPath()
Return the path for this resource.
|
String |
getPathWithinContext()
Return the path within the enclosing 'context'.
|
PortletContext |
getPortletContext()
Return the PortletContext for this resource.
|
URL |
getURL()
This implementation delegates to
PortletContext.getResource ,
but throws a FileNotFoundException if no resource found. |
int |
hashCode()
This implementation returns the description's hash code.
|
boolean |
isReadable()
This implementation delegates to
PortletContext.getResourceAsStream ,
which returns null in case of a non-readable resource (e.g. |
contentLength, customizeConnection, customizeConnection, getFile, getFileForLastModifiedCheck, lastModified
getURI, isOpen, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
contentLength, getURI, isOpen, lastModified
public PortletContextResource(PortletContext portletContext, String path)
The Portlet spec requires that resource paths start with a slash, even if many containers accept paths without leading slash too. Consequently, the given path will be prepended with a slash if it doesn't already start with one.
portletContext
- the PortletContext to load frompath
- the path of the resourcepublic final PortletContext getPortletContext()
public final String getPath()
public boolean exists()
PortletContext.getResource
.exists
in interface Resource
exists
in class AbstractFileResolvingResource
PortletContext.getResource(String)
public boolean isReadable()
PortletContext.getResourceAsStream
,
which returns null
in case of a non-readable resource (e.g. a directory).isReadable
in interface Resource
isReadable
in class AbstractFileResolvingResource
PortletContext.getResourceAsStream(String)
public InputStream getInputStream() throws IOException
PortletContext.getResourceAsStream
,
but throws a FileNotFoundException if not found.getInputStream
in interface InputStreamSource
null
)FileNotFoundException
- if the underlying resource doesn't existIOException
- if the content stream could not be openedPortletContext.getResourceAsStream(String)
public URL getURL() throws IOException
PortletContext.getResource
,
but throws a FileNotFoundException if no resource found.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 descriptorPortletContext.getResource(String)
public File getFile() throws IOException
PortletContext.getRealPath
, throwing a FileNotFoundException
if not found or not resolvable.getFile
in interface Resource
getFile
in class AbstractFileResolvingResource
FileNotFoundException
- if the resource cannot be resolved as
absolute file path, i.e. if the resource is not available in a file systemIOException
- in case of general resolution/reading failuresPortletContext.getResource(String)
,
PortletContext.getRealPath(String)
public Resource createRelative(String relativePath)
AbstractResource
createRelative
in interface Resource
createRelative
in class AbstractResource
relativePath
- the relative path (relative to this resource)public 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.
getDescription
in interface Resource
Object.toString()
public String getPathWithinContext()
ContextResource
This is typically path relative to a context-specific root directory, e.g. a ServletContext root or a PortletContext root.
getPathWithinContext
in interface ContextResource
public boolean equals(Object obj)
AbstractResource
equals
in class AbstractResource
Resource.getDescription()
public int hashCode()
AbstractResource
hashCode
in class AbstractResource
Resource.getDescription()