org.apache.cocoon.acting
Class SessionStateAction

java.lang.Object
  |
  +--org.apache.avalon.framework.logger.AbstractLoggable
        |
        +--org.apache.cocoon.acting.AbstractAction
              |
              +--org.apache.cocoon.acting.AbstractConfigurableAction
                    |
                    +--org.apache.cocoon.acting.SessionStateAction
All Implemented Interfaces:
Action, org.apache.avalon.framework.component.Component, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.logger.Loggable, org.apache.avalon.framework.thread.ThreadSafe

public class SessionStateAction
extends AbstractConfigurableAction
implements org.apache.avalon.framework.thread.ThreadSafe

Store the session's current state in a session attribute.

To keep track of the state of a user's session, a string is stored in a session attribute in order to allow to chose between different pipelines in the sitemap accordingly.

For added flexibility it is possible to use sub states as well. For this declare your own name for the session state attribute and give the number of sublevels plus the level to modify. (This is one based!) Sub states below the current one are removed from the session so that the default sub state will be reentered when the user returns. If you don't like this behaviour and prefer independent sub states, use this action several times with different attribute names rather than sub levels.

Global and local parameters:

state-key-prefix String that identifies the attribute that stores the session state in the session object. When sublevels are used, this is a prefix ie. the number of the level is appended to the prefix. Example prefix is "__sessionState", sub-levels is 2, attributes "__sessionState1", "__sessionState2", and "__sessionState3" will be used to store the information.
new-state String that identifies the current state
sub-levels Number of sub levels to use
state-level Sub level to modify, this is one based

Version:
CVS $Id: SessionStateAction.java,v 1.6.2.2 2002/10/22 02:10:56 vgritsenko Exp $
Author:
Christian Haul
See Also:
WildcardSessionAttributeMatcher, SessionAttributeSelector

Field Summary
protected  int mylevel
           
protected  java.lang.String newstate
           
protected  java.lang.String statekey
           
protected  int sublevels
           
 
Fields inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
settings
 
Fields inherited from class org.apache.cocoon.acting.AbstractAction
EMPTY_MAP
 
Fields inherited from interface org.apache.cocoon.acting.Action
ROLE
 
Constructor Summary
SessionStateAction()
           
 
Method Summary
 java.util.Map act(Redirector redirector, SourceResolver resolver, java.util.Map objectModel, java.lang.String src, org.apache.avalon.framework.parameters.Parameters par)
          Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns.
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
          Configures the Action.
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable
getLogger, setLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

statekey

protected java.lang.String statekey

newstate

protected java.lang.String newstate

sublevels

protected int sublevels

mylevel

protected int mylevel
Constructor Detail

SessionStateAction

public SessionStateAction()
Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Configures the Action.
Overrides:
configure in class AbstractConfigurableAction

act

public java.util.Map act(Redirector redirector,
                         SourceResolver resolver,
                         java.util.Map objectModel,
                         java.lang.String src,
                         org.apache.avalon.framework.parameters.Parameters par)
                  throws java.lang.Exception
Description copied from interface: Action
Controls the processing against some values of the Dictionary objectModel and returns a Map object with values used in subsequent sitemap substitution patterns. NOTE: This interface is designed so that implentations can be ThreadSafe. When an action is ThreadSafe, only one instance serves all requests : this reduces memory usage and avoids pooling.
Following copied from interface: org.apache.cocoon.acting.Action
Parameters:
resolver - The SourceResolver in charge
objectModel - The Map with object of the calling environment which can be used to select values this controller may need (ie Request, Response).
source - A source String to the Action
parameters - The Parameters for this invocation
Returns:
Map The returned Map object with sitemap substitution values which can be used in subsequent elements attributes like src= using a xpath like expression: src="mydir/{myval}/foo" If the return value is null the processing inside the element of the sitemap will be skipped.
Throws:
java.lang.Exception - Indicates something is totally wrong


Copyright © 1999-2002 Apache Software Foundation. All Rights Reserved.