Class VirtualResource

java.lang.Object
org.apache.tapestry5.internal.util.VirtualResource
All Implemented Interfaces:
Resource
Direct Known Subclasses:
ClientLocalizationMessageResource, MessageCatalogResource, UrlResource

public abstract class VirtualResource extends Object implements Resource
Base class for virtual resources: resources that are not simply mapped to stored files, but are assembled, as necessary, on the fly. This is used inside Tapestry to expose the application's localized message catalog as a module. Subclasses should implement the Resource.openStream() method to return a stream of the contents of the virtual resource.
Since:
5.4
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final Charset
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true if the resource exists; if a stream to the content of the file may be opened.
    forFile(String relativePath)
    Returns a Resource based on a relative path, relative to the folder containing the resource.
    forLocale(Locale locale)
    Returns a localized version of the resource.
    Returns the file portion of the Resource path, everything that follows the final forward slash.
    Returns the portion of the path up to the last forward slash; this is the directory or folder portion of the Resource.
    Return the path (the combination of folder and file).
    boolean
    Returns true if the resource is virtual, meaning this is no underlying file.
    protected InputStream
    toInputStream(byte[] content)
     
    protected InputStream
     
    Returns the URL for the resource, or null if it does not exist.
    withExtension(String extension)
    Returns a new Resource with the extension changed (or, if the resource does not have an extension, the extension is added).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.tapestry5.commons.Resource

    openStream
  • Field Details

  • Constructor Details

  • Method Details

    • exists

      public boolean exists()
      Description copied from interface: Resource
      Returns true if the resource exists; if a stream to the content of the file may be opened. A resource exists if Resource.toURL() returns a non-null value. Starting in release 5.3.4, the result of this is cached. Starting in 5.4, some "virtual resources", may return true even though Resource.toURL() returns null.
      Specified by:
      exists in interface Resource
      Returns:
      true if the resource exists, false if it does not
    • toURL

      public URL toURL()
      Description copied from interface: Resource
      Returns the URL for the resource, or null if it does not exist. This value is lazily computed; starting in 5.3.4, subclasses may cache the result. Starting in 5.4, some "virtual resources" may return null.
      Specified by:
      toURL in interface Resource
    • forLocale

      public Resource forLocale(Locale locale)
      Description copied from interface: Resource
      Returns a localized version of the resource. May return null if no such resource exists. Starting in release 5.3.4, the result of this method is cached internally.
      Specified by:
      forLocale in interface Resource
    • forFile

      public Resource forFile(String relativePath)
      Description copied from interface: Resource
      Returns a Resource based on a relative path, relative to the folder containing the resource. Understands the "." (current folder) and ".." (parent folder) conventions, and treats multiple sequential slashes as a single slash. Virtual resources (resources fabricated at runtime) return themselves.
      Specified by:
      forFile in interface Resource
    • withExtension

      public Resource withExtension(String extension)
      Description copied from interface: Resource
      Returns a new Resource with the extension changed (or, if the resource does not have an extension, the extension is added). The new Resource may not exist (that is, Resource.toURL() may return null.
      Specified by:
      withExtension in interface Resource
      Parameters:
      extension - to apply to the resource, such as "html" or "properties"
      Returns:
      the new resource
    • getFolder

      public String getFolder()
      Description copied from interface: Resource
      Returns the portion of the path up to the last forward slash; this is the directory or folder portion of the Resource.
      Specified by:
      getFolder in interface Resource
    • getFile

      public String getFile()
      Description copied from interface: Resource
      Returns the file portion of the Resource path, everything that follows the final forward slash. Starting in 5.4, certain kinds of "virtual resources" may return null here.
      Specified by:
      getFile in interface Resource
    • getPath

      public String getPath()
      Description copied from interface: Resource
      Return the path (the combination of folder and file). Starting in 5.4, certain "virtual resources", may return an arbitrary value here.
      Specified by:
      getPath in interface Resource
    • toInputStream

      protected InputStream toInputStream(String content) throws IOException
      Throws:
      IOException
    • toInputStream

      protected InputStream toInputStream(byte[] content) throws IOException
      Throws:
      IOException
    • isVirtual

      public boolean isVirtual()
      Description copied from interface: Resource
      Returns true if the resource is virtual, meaning this is no underlying file. Many operations are unsupported on virtual resources, including Resource.toURL(), Resource.forLocale(java.util.Locale), Resource.withExtension(String), Resource.getFile(), Resource.getFolder(), Resource.getPath()}; these operations will throw an UnsupportedOperationException.
      Specified by:
      isVirtual in interface Resource