org.eclipse.jdt.internal.compiler.flow
Class ExceptionHandlingFlowContext

java.lang.Object
  extended by org.eclipse.jdt.internal.compiler.flow.FlowContext
      extended by org.eclipse.jdt.internal.compiler.flow.ExceptionHandlingFlowContext
All Implemented Interfaces:
TypeConstants
Direct Known Subclasses:
InitializationFlowContext

public class ExceptionHandlingFlowContext
extends FlowContext

Reflects the context of code analysis, keeping track of enclosing try statements, exception handlers, etc...


Field Summary
static int BitCacheSize
           
 Argument[] catchArguments
           
 ArrayList extendedExceptions
           
 ReferenceBinding[] handledExceptions
           
 FlowContext initializationParent
           
 UnconditionalFlowInfo initsOnReturn
           
 
Fields inherited from class org.eclipse.jdt.internal.compiler.flow.FlowContext
associatedNode, CAN_ONLY_NON_NULL, CAN_ONLY_NULL, CAN_ONLY_NULL_NON_NULL, CHECK_MASK, CONTEXT_MASK, DEFER_NULL_DIAGNOSTIC, HIDE_NULL_COMPARISON_WARNING, IN_ASSIGNMENT, IN_COMPARISON_NON_NULL, IN_COMPARISON_NULL, IN_INSTANCEOF, initsOnFinally, MAY_NULL, NotContinuableContext, parent, PREEMPT_NULL_DIAGNOSTIC, tagBits
 
Fields inherited from interface org.eclipse.jdt.internal.compiler.lookup.TypeConstants
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INT, INVOKE, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE
 
Constructor Summary
ExceptionHandlingFlowContext(FlowContext parent, ASTNode associatedNode, ReferenceBinding[] handledExceptions, FlowContext initializationParent, BlockScope scope, UnconditionalFlowInfo flowInfo)
           
ExceptionHandlingFlowContext(FlowContext parent, ASTNode associatedNode, ReferenceBinding[] handledExceptions, int[] exceptionToCatchBlockMap, Argument[] catchArguments, FlowContext initializationParent, BlockScope scope, UnconditionalFlowInfo flowInfo)
           
 
Method Summary
 void complainIfUnusedExceptionHandlers(AbstractMethodDeclaration method)
           
 void complainIfUnusedExceptionHandlers(BlockScope scope, TryStatement tryStatement)
           
 String individualToString()
           
 UnconditionalFlowInfo initsOnException(int index)
           
 UnconditionalFlowInfo initsOnReturn()
           
 void mergeUnhandledException(TypeBinding newException)
           
 void recordHandlingException(ReferenceBinding exceptionType, UnconditionalFlowInfo flowInfo, TypeBinding raisedException, TypeBinding caughtException, ASTNode invocationSite, boolean wasAlreadyDefinitelyCaught)
           
 void recordReturnFrom(UnconditionalFlowInfo flowInfo)
           
 SubRoutineStatement subroutine()
          Exception handlers (with no finally block) are also included with subroutine only once (in case parented with true InsideSubRoutineFlowContext).
 
Methods inherited from class org.eclipse.jdt.internal.compiler.flow.FlowContext
breakLabel, checkExceptionHandlers, checkExceptionHandlers, checkExceptionHandlers, continueLabel, getInitsForFinalBlankInitializationCheck, getTargetContextForBreakLabel, getTargetContextForContinueLabel, getTargetContextForDefaultBreak, getTargetContextForDefaultContinue, initsOnBreak, isBreakable, isContinuable, isNonReturningContext, isSubRoutine, labelName, recordBreakFrom, recordBreakTo, recordContinueFrom, recordFinalAssignment, recordNullReference, recordSettingFinal, recordUsingNullReference, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BitCacheSize

public static final int BitCacheSize
See Also:
Constant Field Values

handledExceptions

public ReferenceBinding[] handledExceptions

initsOnReturn

public UnconditionalFlowInfo initsOnReturn

initializationParent

public FlowContext initializationParent

extendedExceptions

public ArrayList extendedExceptions

catchArguments

public Argument[] catchArguments
Constructor Detail

ExceptionHandlingFlowContext

public ExceptionHandlingFlowContext(FlowContext parent,
                                    ASTNode associatedNode,
                                    ReferenceBinding[] handledExceptions,
                                    FlowContext initializationParent,
                                    BlockScope scope,
                                    UnconditionalFlowInfo flowInfo)

ExceptionHandlingFlowContext

public ExceptionHandlingFlowContext(FlowContext parent,
                                    ASTNode associatedNode,
                                    ReferenceBinding[] handledExceptions,
                                    int[] exceptionToCatchBlockMap,
                                    Argument[] catchArguments,
                                    FlowContext initializationParent,
                                    BlockScope scope,
                                    UnconditionalFlowInfo flowInfo)
Method Detail

complainIfUnusedExceptionHandlers

public void complainIfUnusedExceptionHandlers(AbstractMethodDeclaration method)

complainIfUnusedExceptionHandlers

public void complainIfUnusedExceptionHandlers(BlockScope scope,
                                              TryStatement tryStatement)

individualToString

public String individualToString()
Overrides:
individualToString in class FlowContext

initsOnException

public UnconditionalFlowInfo initsOnException(int index)

initsOnReturn

public UnconditionalFlowInfo initsOnReturn()
Overrides:
initsOnReturn in class FlowContext

mergeUnhandledException

public void mergeUnhandledException(TypeBinding newException)

recordHandlingException

public void recordHandlingException(ReferenceBinding exceptionType,
                                    UnconditionalFlowInfo flowInfo,
                                    TypeBinding raisedException,
                                    TypeBinding caughtException,
                                    ASTNode invocationSite,
                                    boolean wasAlreadyDefinitelyCaught)

recordReturnFrom

public void recordReturnFrom(UnconditionalFlowInfo flowInfo)
Overrides:
recordReturnFrom in class FlowContext

subroutine

public SubRoutineStatement subroutine()
Exception handlers (with no finally block) are also included with subroutine only once (in case parented with true InsideSubRoutineFlowContext). Standard management of subroutines need to also operate on intermediate exception handlers.

Overrides:
subroutine in class FlowContext
See Also:
FlowContext.subroutine()


Copyright © 2012. All Rights Reserved.