com.opensymphony.module.sitemesh.parser
Class AbstractPage

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

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.2 $
Author:
Joe Walnes
See Also:
Page

Field Summary
(package private)  char[] pageData
          Date of page contents.
private  Map properties
          Map of all properties.
private  HttpServletRequest request
          RequestURI of original Page.
 
Constructor Summary
AbstractPage()
           
 
Method Summary
 void addProperty(String name, String value)
          Add a property to the properties list.
 boolean getBooleanProperty(String name)
          Get a property embedded into the Page as a boolean.
 int getContentLength()
          Length of the Page, in the format before it was parsed.
 int getIntProperty(String name)
          Get a property embedded into the Page as an int.
 long getLongProperty(String name)
          Get a property embedded into the Page as a long.
 Map getProperties()
          Get a Map representing all the properties in the Page.
 String getProperty(String name)
          Get a property embedded into the Page as a String.
 String[] getPropertyKeys()
          Get all available property keys for the Page.
 HttpServletRequest getRequest()
          Return the request of the original page.
 String getTitle()
          Return title of from "title" property.
 boolean isPropertySet(String name)
          Determine whether a property embedded into the Page has been set.
protected static String noNull(String in)
          Return String as is, or "" if null.
 void setRequest(HttpServletRequest request)
          Create snapshot of Request.
abstract  void writeBody(Writer out)
          Write data of html <body> tag.
 void writePage(Writer out)
          Write the entire contents of the Page, in the format before it was parsed, to the Writer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

properties

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


pageData

char[] pageData
Date of page contents.


request

private HttpServletRequest request
RequestURI of original Page.

Constructor Detail

AbstractPage

public AbstractPage()
Method Detail

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.

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

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 HttpServletRequest getRequest()
Description copied from interface: Page
Return the request of the original page.

Specified by:
getRequest in interface Page
See Also:
Page.getRequest()

setRequest

public void setRequest(HttpServletRequest request)
Create snapshot of Request.

Specified by:
setRequest in interface Page
See Also:
Page.getRequest()

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)


www.opensymphony.com/sitemesh/