org.apache.tapestry.record
Class ClientPropertyPersistenceStrategy

java.lang.Object
  extended by org.apache.tapestry.record.ClientPropertyPersistenceStrategy
All Implemented Interfaces:
PropertyPersistenceStrategy

public class ClientPropertyPersistenceStrategy
extends java.lang.Object
implements PropertyPersistenceStrategy

Service tapestry.persist.ClientPropertyPersistenceStrategy. Encodes persistent page properties on the client as query parameters.

Uses the threaded model.

Since:
4.0
Author:
Howard M. Lewis Ship
See Also:
ILink

Field Summary
static java.lang.String PREFIX
          Query parameters consist of this prefix followed by the page name.
 
Constructor Summary
ClientPropertyPersistenceStrategy()
           
 
Method Summary
 void addParametersForPersistentProperties(ServiceEncoding encoding, IRequestCycle cycle)
          Invoked by a LinkFactory , the parameters may be modified (added to) to store information related to persistent properties.
 void discardStoredChanges(java.lang.String pageName, IRequestCycle cycle)
          Invoked to discard any stored changes for the specified page.
 ClientPropertyPersistenceScope getScope()
           
 java.util.Collection getStoredChanges(java.lang.String pageName, IRequestCycle cycle)
          Returns a collection of PropertyChanges.
 void initializeService()
          Initializer for this service, invoked every time a service instance is created.
 void setRequest(WebRequest request)
           
 void setScope(ClientPropertyPersistenceScope scope)
           
 void store(java.lang.String pageName, java.lang.String idPath, java.lang.String propertyName, java.lang.Object newValue)
          Stores the new value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PREFIX

public static final java.lang.String PREFIX
Query parameters consist of this prefix followed by the page name. Each page gets its own query parameter.

See Also:
Constant Field Values
Constructor Detail

ClientPropertyPersistenceStrategy

public ClientPropertyPersistenceStrategy()
Method Detail

initializeService

public void initializeService()
Initializer for this service, invoked every time a service instance is created. This initializer pulls out of the request and query parameters whose prefix is "client:" and expects them to be encoded PersistentPropertyData, which are stored internally. Because the service model is threaded, this information is specific to a single request, and will be discarded at the end of the request.


store

public void store(java.lang.String pageName,
                  java.lang.String idPath,
                  java.lang.String propertyName,
                  java.lang.Object newValue)
Description copied from interface: PropertyPersistenceStrategy
Stores the new value.

Specified by:
store in interface PropertyPersistenceStrategy
Parameters:
pageName - the name of the page containing the property
idPath - the path to the component with the property (may be null)
propertyName - the name of the property to be persisted
newValue - the new value (which may be null)

getStoredChanges

public java.util.Collection getStoredChanges(java.lang.String pageName,
                                             IRequestCycle cycle)
Description copied from interface: PropertyPersistenceStrategy
Returns a collection of PropertyChanges. These represent prior changes previously stored. The order is not significant. Must not return null. Does not have to reflect changes made during the current request (this method is typically invoked as part of rolling back a page to a prior state, before any further changes are possible).

Specified by:
getStoredChanges in interface PropertyPersistenceStrategy

discardStoredChanges

public void discardStoredChanges(java.lang.String pageName,
                                 IRequestCycle cycle)
Description copied from interface: PropertyPersistenceStrategy
Invoked to discard any stored changes for the specified page.

Specified by:
discardStoredChanges in interface PropertyPersistenceStrategy

addParametersForPersistentProperties

public void addParametersForPersistentProperties(ServiceEncoding encoding,
                                                 IRequestCycle cycle)
Description copied from interface: PropertyPersistenceStrategy
Invoked by a LinkFactory , the parameters may be modified (added to) to store information related to persistent properties. This method is forwarded to all PropertyPersistenceStrategys.

Specified by:
addParametersForPersistentProperties in interface PropertyPersistenceStrategy
Parameters:
encoding - Service encoding, which indentifies the URL and the query parameters from which the ILink will be created.
cycle - The current request cycle.
See Also:
PropertyPersistenceStrategySource

setRequest

public void setRequest(WebRequest request)

getScope

public ClientPropertyPersistenceScope getScope()

setScope

public void setScope(ClientPropertyPersistenceScope scope)