Class AbstractPage

java.lang.Object
com.opensymphony.module.sitemesh.parser.AbstractPage
All Implemented Interfaces:
Page
Direct Known Subclasses:
AbstractHTMLPage

public abstract class AbstractPage extends Object implements Page
Abstract implementation of Page .

Contains base methods for storing and accessing page properties. Also stores pageData as byte[] and implements write???() methods.

Concrete implementations need only set the pageData and call addProperty(java.lang.String,java.lang.String) to add all the required information.

Version:
$Revision: 1.6 $
Author:
Joe Walnes
See Also:
  • Field Details

    • properties

      private final Map properties
      Map of all properties. Key is String. Value is java.util.List of multiple String values.
    • pageData

      protected char[] pageData
      Date of page contents.
    • request

      private javax.servlet.http.HttpServletRequest request
      RequestURI of original Page.
  • Constructor Details

    • AbstractPage

      public AbstractPage()
  • Method Details

    • writePage

      public void writePage(Writer out) throws IOException
      Description copied from interface: Page
      Write the entire contents of the Page, in the format before it was parsed, to the Writer.
      Specified by:
      writePage in interface Page
      Parameters:
      out - Writer to write to.
      Throws:
      IOException - Rethrown if cannot write to writer.
    • getPage

      public String getPage()
      Description copied from interface: Page
      Convenience method to return the contents of the Page in its original format.
      Specified by:
      getPage in interface Page
      See Also:
    • writeBody

      public abstract void writeBody(Writer out) throws IOException
      Write data of html <body> tag.

      Must be implemented. Data written should not actually contain the body tags, but all the data in between.

      Specified by:
      writeBody in interface Page
      Throws:
      IOException
    • getBody

      public String getBody()
      Description copied from interface: Page
      Convenience method to return the contents of the <body> tag.
      Specified by:
      getBody in interface Page
      See Also:
    • getTitle

      public String getTitle()
      Return title of from "title" property. Never returns null.
      Specified by:
      getTitle in interface Page
    • getContentLength

      public int getContentLength()
      Description copied from interface: Page
      Length of the Page, in the format before it was parsed.
      Specified by:
      getContentLength in interface Page
      Returns:
      Length of page data (in number of bytes).
    • getProperty

      public String getProperty(String name)
      Description copied from interface: Page
      Get a property embedded into the Page as a String.
      Specified by:
      getProperty in interface Page
      Parameters:
      name - Name of property
      Returns:
      Property value
    • getIntProperty

      public int getIntProperty(String name)
      Description copied from interface: Page
      Get a property embedded into the Page as an int. Returns 0 if property not specified or not valid number.
      Specified by:
      getIntProperty in interface Page
      Parameters:
      name - Name of property
      Returns:
      Property value
    • getLongProperty

      public long getLongProperty(String name)
      Description copied from interface: Page
      Get a property embedded into the Page as a long. Returns 0L if property not specified or not valid number.
      Specified by:
      getLongProperty in interface Page
      Parameters:
      name - Name of property
      Returns:
      Property value
    • getBooleanProperty

      public boolean getBooleanProperty(String name)
      Description copied from interface: Page
      Get a property embedded into the Page as a boolean. Returns true if value starts with '1', 't' or 'y' (case-insensitive) - otherwise returns false.
      Specified by:
      getBooleanProperty in interface Page
      Parameters:
      name - Name of property
      Returns:
      Property value
    • isPropertySet

      public boolean isPropertySet(String name)
      Description copied from interface: Page
      Determine whether a property embedded into the Page has been set.
      Specified by:
      isPropertySet in interface Page
      Parameters:
      name - Name of property
      Returns:
      Whether it has been set
    • getPropertyKeys

      public String[] getPropertyKeys()
      Description copied from interface: Page
      Get all available property keys for the Page.
      Specified by:
      getPropertyKeys in interface Page
      Returns:
      Property keys
    • getProperties

      public Map getProperties()
      Description copied from interface: Page
      Get a Map representing all the properties in the Page.
      Specified by:
      getProperties in interface Page
      Returns:
      Properties map
    • getRequest

      public javax.servlet.http.HttpServletRequest getRequest()
      Description copied from interface: Page
      Return the request of the original page.
      Specified by:
      getRequest in interface Page
      See Also:
    • setRequest

      public void setRequest(javax.servlet.http.HttpServletRequest request)
      Create snapshot of Request.
      Specified by:
      setRequest in interface Page
      See Also:
    • addProperty

      public void addProperty(String name, String value)
      Add a property to the properties list.
      Specified by:
      addProperty in interface Page
      Parameters:
      name - Name of property
      value - Value of property
    • noNull

      protected static String noNull(String in)
      Return String as is, or "" if null. (Prevents NullPointerExceptions)