The Spring Framework

org.springframework.web.context.request
Class AbstractRequestAttributesScope

java.lang.Object
  extended by org.springframework.web.context.request.AbstractRequestAttributesScope
All Implemented Interfaces:
Scope
Direct Known Subclasses:
RequestScope, SessionScope

public abstract class AbstractRequestAttributesScope
extends Object
implements Scope

Abstract Scope implementation that reads from a particular scope in the current thread-bound RequestAttributes object.

Subclasses simply need to implement getScope() to instruct this class which RequestAttributes scope to read attributes from.

Subclasses may wish to override the get(java.lang.String, org.springframework.beans.factory.ObjectFactory) and remove(java.lang.String) methods to add synchronization around the call back into this super class.

Since:
2.0
Author:
Rod Johnson, Juergen Hoeller, Rob Harrop

Constructor Summary
AbstractRequestAttributesScope()
           
 
Method Summary
 Object get(String name, ObjectFactory objectFactory)
          Return the object with the given name from the underlying scope, creating it if not found in the underlying storage mechanism.
protected abstract  int getScope()
          Template method that determines the actual target scope.
 void registerDestructionCallback(String name, Runnable callback)
          Register a callback to be executed at destruction of the specified object (or at destruction of the entire scope, if the scope does not destroy individual objects but rather only terminate in its entirety).
 Object remove(String name)
          Remove the object with the given name from the underlying scope.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.beans.factory.config.Scope
getConversationId
 

Constructor Detail

AbstractRequestAttributesScope

public AbstractRequestAttributesScope()
Method Detail

get

public Object get(String name,
                  ObjectFactory objectFactory)
Description copied from interface: Scope
Return the object with the given name from the underlying scope, creating it if not found in the underlying storage mechanism.

Specified by:
get in interface Scope
Parameters:
name - the name of the object to retrieve
objectFactory - the ObjectFactory to use to create the scoped object if it is not present in the underlying storage mechanism
Returns:
the desired object

remove

public Object remove(String name)
Description copied from interface: Scope
Remove the object with the given name from the underlying scope.

Returns 'null' if no object was found; otherwise returns the removed Object.

Specified by:
remove in interface Scope
Parameters:
name - the name of the object to remove
Returns:
the removed object, if any

registerDestructionCallback

public void registerDestructionCallback(String name,
                                        Runnable callback)
Description copied from interface: Scope
Register a callback to be executed at destruction of the specified object (or at destruction of the entire scope, if the scope does not destroy individual objects but rather only terminate in its entirety).

Implementations should do their best to execute the callback at the appropriate time. If such a callback is not supported by the underlying runtime environment, the callback must be ignored and a corresponding warning should be logged.

Specified by:
registerDestructionCallback in interface Scope
Parameters:
name - the name of the object to execute the destruction callback for
callback - the destruction callback to be executed

getScope

protected abstract int getScope()
Template method that determines the actual target scope.

Returns:
the target scope, in the form of an appropriate RequestAttributes constant
See Also:
RequestAttributes.SCOPE_REQUEST, RequestAttributes.SCOPE_SESSION, RequestAttributes.SCOPE_GLOBAL_SESSION

The Spring Framework

Copyright © 2002-2006 The Spring Framework.