Package com.opensymphony.module.sitemesh.parser

# 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:
  - `Page`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected char[]`
`pageData`
Date of page contents.
`private final Map`
`properties`
Map of all properties.
`private javax.servlet.http.HttpServletRequest`
`request`
RequestURI of original Page.

## Constructor Summary

Constructors
Constructor
Description
`AbstractPage()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addProperty(String name, String value)`
Add a property to the properties list.
`String`
`getBody()`
Convenience method to return the contents of the `<body>` tag.
`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`.
`String`
`getPage()`
Convenience method to return the contents of the `Page` in its original format.
`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`.
`javax.servlet.http.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(javax.servlet.http.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 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:
  - `Page.writePage(java.io.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`

### 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:
  - `Page.writeBody(java.io.Writer)`

### 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:
  - `Page.getRequest()`

### setRequest

public void setRequest(javax.servlet.http.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)