org.apache.derby.iapi.services.context
Class ContextImpl

java.lang.Object
  extended by org.apache.derby.iapi.services.context.ContextImpl
All Implemented Interfaces:
Context
Direct Known Subclasses:
ClassFactoryContext, CompilerContextImpl, DatabaseContextImpl, EmbedConnectionContext, GenericExecutionContext, GenericLanguageConnectionContext, GenericStatementContext, RAMTransactionContext, ServiceBootContext, SystemContext, XactContext, XATransactionState

public abstract class ContextImpl
extends java.lang.Object
implements Context

Contexts are created and used to manage the execution environment. They provide a convenient location for storing globals organized by the module using the globals.

We provide this abstract class for other implementations to use so that they can simply add fields and operations on them. To be usable by the context manager, the subclasses must define CleanupOnError and call super() in any constructor.

Contexts assist in cleanup when errors are caught in the outer block.

Contexts implement the sanity interface to check and provide information about their contents.


Field Summary
private  ContextManager myContextManager
           
private  java.lang.String myIdName
           
 
Constructor Summary
protected ContextImpl(ContextManager cm, java.lang.String id)
           
 
Method Summary
 java.lang.StringBuffer appendErrorInfo()
           
 ContextManager getContextManager()
          Returns the context manager that has stored this context in its stack.
 java.lang.String getIdName()
          Returns the current id name associated with this context.
 boolean isLastHandler(int severity)
          Return whether or not this context is the "last" handler for a the specified severity level.
 void popMe()
          Pop myself of the context stack.
 void pushMe()
          Push myself onto my context stack.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.services.context.Context
cleanupOnError
 

Field Detail

myIdName

private final java.lang.String myIdName

myContextManager

private final ContextManager myContextManager
Constructor Detail

ContextImpl

protected ContextImpl(ContextManager cm,
                      java.lang.String id)
Method Detail

getContextManager

public final ContextManager getContextManager()
Description copied from interface: Context
Returns the context manager that has stored this context in its stack.

Specified by:
getContextManager in interface Context
See Also:
Context.getContextManager()

getIdName

public final java.lang.String getIdName()
Description copied from interface: Context
Returns the current id name associated with this context. Contexts are placed into stacks by id, in a context manager. Null if the context is not assigned to an id. Contexts known by context managers are always assigned to an id.

A default Id name should be defined in each specific context interface as a static final field with the name CONTEXT_ID. For example, see org.apache.derby.iapi.sql.compile.CompilerContext.CONTEXT_ID.

Specified by:
getIdName in interface Context
See Also:
Context.getIdName()

pushMe

public final void pushMe()
Description copied from interface: Context
Push myself onto my context stack.

Specified by:
pushMe in interface Context

popMe

public final void popMe()
Description copied from interface: Context
Pop myself of the context stack.

Specified by:
popMe in interface Context
See Also:
Context.popMe()

isLastHandler

public boolean isLastHandler(int severity)
Description copied from interface: Context
Return whether or not this context is the "last" handler for a the specified severity level. Previously, the context manager would march through all of the contexts in cleanupOnError() and call each of their cleanupOnError() methods. That did not work with server side JDBC, especially for a StatementException, because outer contexts could get cleaned up incorrectly. This functionality is specific to the Language system. Any non-language system contexts should return ExceptionSeverity.NOT_APPLICABLE_SEVERITY. NOTE: Both the LanguageConnectionContext and the JDBC Connection Context are interested in session level errors because they both have clean up to do. This method allows both of them to return false so that all such handlers under them can do their clean up.

Specified by:
isLastHandler in interface Context
See Also:
Context.isLastHandler(int)

appendErrorInfo

public java.lang.StringBuffer appendErrorInfo()

Built on Thu 2010-12-23 20:49:13+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.