org.jicengine.io
Class WebApplicationResource

java.lang.Object
  extended byorg.jicengine.io.AbstractResource
      extended byorg.jicengine.io.WebApplicationResource
All Implemented Interfaces:
Resource, UrlReadable

public class WebApplicationResource
extends AbstractResource
implements UrlReadable

A Resource-implementation for accessing resources inside a web-application.

WebApplicationResource used the methods ServletContext.getResource() and ServletContext.getResourceAsStream() for the job.

Author:
.timo

Constructor Summary
WebApplicationResource(javax.servlet.ServletContext webApplication, java.lang.String resourceName)
           
 
Method Summary
 java.io.InputStream getInputStream()
          A primary way reading the resource.
 Resource getResource(java.lang.String relativePath)
           Locates another Resource whose path is defined relative to this Resource.
 java.lang.String getResourceName()
           
 javax.servlet.ServletContext getServletContext()
           
 java.net.URL getUrl()
           
 boolean isAvailable()
           Determines the availability of the Resource by calling getInputStream(): resource is available if the method doesn't throw an exception.
 
Methods inherited from class org.jicengine.io.AbstractResource
getIdentifier, getMimeType, getReader, setMimeType, toString, writeTo, writeTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WebApplicationResource

public WebApplicationResource(javax.servlet.ServletContext webApplication,
                              java.lang.String resourceName)
Parameters:
webApplication - the ServletContext of the web-application
resourceName - the name of the resource i.e. a path inside the web-app. must start with "/".
Method Detail

getServletContext

public javax.servlet.ServletContext getServletContext()

getResourceName

public java.lang.String getResourceName()

getUrl

public java.net.URL getUrl()
                    throws java.io.IOException
Specified by:
getUrl in interface UrlReadable
Throws:
java.io.IOException

isAvailable

public boolean isAvailable()
Description copied from class: AbstractResource

Determines the availability of the Resource by calling getInputStream(): resource is available if the method doesn't throw an exception.

Override this if a more efficient way for determining the availability is possible.

Specified by:
isAvailable in interface Resource
Overrides:
isAvailable in class AbstractResource

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
Description copied from interface: Resource
A primary way reading the resource.

Specified by:
getInputStream in interface Resource
Specified by:
getInputStream in class AbstractResource
Throws:
java.io.IOException

getResource

public Resource getResource(java.lang.String relativePath)
                     throws java.io.IOException
Description copied from interface: Resource

Locates another Resource whose path is defined relative to this Resource.

the path scheme used with files and urls is used for specifying relative paths.

the method generally returns instances of the same Resource-subclass than the current instance, but this is not obligatory.

NOTE:

NOTE: there is no support for absolute paths. yet.

Specified by:
getResource in interface Resource
Specified by:
getResource in class AbstractResource
Throws:
java.io.IOException