SAP NetWeaver '04

com.sap.netweaver.bc.rf.util.context
Class AbstractIndependentThreadContextFactory

[contained in: com.sap.netweaver.bc.rf.par - bc.rf.util_api.jar]
java.lang.Object
  |
  +--com.sap.netweaver.bc.rf.util.context.AbstractContextFactory
        |
        +--com.sap.netweaver.bc.rf.util.context.AbstractIndependentThreadContextFactory
All Implemented Interfaces:
IContextFactory
Direct Known Subclasses:
AccessContextFactory

public abstract class AbstractIndependentThreadContextFactory
extends AbstractContextFactory

Abstract context factory base class for thread-local-based context factory interface implementations being independent from other context factory implementations. All writing optional operations can be supported in independent context factories.

See Also:
IContextFactory

Field Summary
protected  java.lang.InheritableThreadLocal inheritableThreadLocal
           
 
Constructor Summary
protected AbstractIndependentThreadContextFactory()
          Construct object of class AbstractIndependentThreadContextFactory.
 
Method Summary
protected  IContextStack getContextStack()
          Internally get the stack of contexts associated with the actual thread.
 java.lang.Object getTypeUnsafeContext()
          Get actual context from stack of contexts.
 java.lang.Object getTypeUnsafeContextOrNullIfUnavailable()
          Get actual context from stack of contexts.
 boolean isAvailable()
          Checks if there is at least one actual context stacked.
 java.lang.Object popTypeUnsafeContext()
          Get and remove actual context from the stack of contexts.
 void pushTypeUnsafeContext(java.lang.Object context)
          Add new context to the top of the stack of contexts.
 void removeTypeUnsafeContext()
          Remove actual context including all other stacked contexts completely (optional operation).
protected  void setContextStack(IContextStack contextStack)
          Internally get the stack of contexts associated with the actual thread.
 void setTypeUnsafeContext(java.lang.Object context)
          Replace actual context with new one in stack of contexts.
 int size()
          Get the number of context entries in the stack of contexts.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inheritableThreadLocal

protected java.lang.InheritableThreadLocal inheritableThreadLocal
Constructor Detail

AbstractIndependentThreadContextFactory

protected AbstractIndependentThreadContextFactory()
                                           throws ContextFactoryRegistrationError
Construct object of class AbstractIndependentThreadContextFactory.
Throws:
ContextFactoryRegistrationError - when the context factory is already registered with the context factory registry
Method Detail

getContextStack

protected IContextStack getContextStack()
Internally get the stack of contexts associated with the actual thread.
Returns:
stack of contexts

setContextStack

protected void setContextStack(IContextStack contextStack)
Internally get the stack of contexts associated with the actual thread.
Parameters:
contextStack - The new contextStack value

isAvailable

public boolean isAvailable()
Checks if there is at least one actual context stacked.
Returns:
flag indicating whether there is at least one actual context stacked

size

public int size()
Get the number of context entries in the stack of contexts.
Returns:
number of context entries in the stack of contexts

getTypeUnsafeContext

public java.lang.Object getTypeUnsafeContext()
                                      throws ContextUnavailableException
Get actual context from stack of contexts.
Returns:
actual context on the context stack
Throws:
ContextUnavailableException - when no (more) context is available on the context stack

getTypeUnsafeContextOrNullIfUnavailable

public java.lang.Object getTypeUnsafeContextOrNullIfUnavailable()
Get actual context from stack of contexts. Return null if none is availble and don't throw a ContextUnavailableException.
Returns:
actual context on the context stack

setTypeUnsafeContext

public void setTypeUnsafeContext(java.lang.Object context)
Replace actual context with new one in stack of contexts. If no context is stored, this one will be added.
Parameters:
context - new actual context replacing the old one on the stack

removeTypeUnsafeContext

public void removeTypeUnsafeContext()
                             throws java.lang.UnsupportedOperationException
Remove actual context including all other stacked contexts completely (optional operation).
Throws:
java.lang.UnsupportedOperationException - when the context factory isn't supporting this writing optional operation

popTypeUnsafeContext

public java.lang.Object popTypeUnsafeContext()
                                      throws ContextUnavailableException
Get and remove actual context from the stack of contexts.
Returns:
last actual context on the context stack
Throws:
ContextUnavailableException - when no (more) context is available on the context stack

pushTypeUnsafeContext

public void pushTypeUnsafeContext(java.lang.Object context)
Add new context to the top of the stack of contexts.
Parameters:
context - new actual context

SAP NetWeaver '04

Copyright © 2004 by SAP AG. All Rights Reserved.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.