org.eclipse.jdt.internal.compiler.flow
Class FlowContext
java.lang.Object
org.eclipse.jdt.internal.compiler.flow.FlowContext
- All Implemented Interfaces:
- TypeConstants
- Direct Known Subclasses:
- ExceptionHandlingFlowContext, FinallyFlowContext, InsideSubRoutineFlowContext, SwitchFlowContext
public class FlowContext
- extends Object
- implements TypeConstants
Reflects the context of code analysis, keeping track of enclosing
try statements, exception handlers, etc...
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 |
Method Summary |
BranchLabel |
breakLabel()
|
void |
checkExceptionHandlers(TypeBinding[] raisedExceptions,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope)
|
void |
checkExceptionHandlers(TypeBinding raisedException,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope)
|
void |
checkExceptionHandlers(TypeBinding raisedException,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope,
boolean isExceptionOnAutoClose)
|
BranchLabel |
continueLabel()
|
FlowInfo |
getInitsForFinalBlankInitializationCheck(TypeBinding declaringType,
FlowInfo flowInfo)
|
FlowContext |
getTargetContextForBreakLabel(char[] labelName)
|
FlowContext |
getTargetContextForContinueLabel(char[] labelName)
|
FlowContext |
getTargetContextForDefaultBreak()
|
FlowContext |
getTargetContextForDefaultContinue()
|
String |
individualToString()
|
FlowInfo |
initsOnBreak()
|
UnconditionalFlowInfo |
initsOnReturn()
|
boolean |
isBreakable()
|
boolean |
isContinuable()
|
boolean |
isNonReturningContext()
|
boolean |
isSubRoutine()
|
char[] |
labelName()
|
void |
recordBreakFrom(FlowInfo flowInfo)
|
void |
recordBreakTo(FlowContext targetContext)
|
void |
recordContinueFrom(FlowContext innerFlowContext,
FlowInfo flowInfo)
|
protected boolean |
recordFinalAssignment(VariableBinding variable,
Reference finalReference)
|
protected void |
recordNullReference(LocalVariableBinding local,
Expression expression,
int status)
Record a null reference for use by deferred checks. |
void |
recordReturnFrom(UnconditionalFlowInfo flowInfo)
|
void |
recordSettingFinal(VariableBinding variable,
Reference finalReference,
FlowInfo flowInfo)
|
void |
recordUsingNullReference(Scope scope,
LocalVariableBinding local,
Expression reference,
int checkType,
FlowInfo flowInfo)
Record a null reference for use by deferred checks. |
SubRoutineStatement |
subroutine()
|
String |
toString()
|
NotContinuableContext
public static final FlowContext NotContinuableContext
associatedNode
public ASTNode associatedNode
parent
public FlowContext parent
initsOnFinally
public NullInfoRegistry initsOnFinally
tagBits
public int tagBits
DEFER_NULL_DIAGNOSTIC
public static final int DEFER_NULL_DIAGNOSTIC
- See Also:
- Constant Field Values
PREEMPT_NULL_DIAGNOSTIC
public static final int PREEMPT_NULL_DIAGNOSTIC
- See Also:
- Constant Field Values
HIDE_NULL_COMPARISON_WARNING
public static final int HIDE_NULL_COMPARISON_WARNING
- used to hide null comparison related warnings inside assert statements
- See Also:
- Constant Field Values
CAN_ONLY_NULL_NON_NULL
public static final int CAN_ONLY_NULL_NON_NULL
- See Also:
- Constant Field Values
CAN_ONLY_NULL
public static final int CAN_ONLY_NULL
- See Also:
- Constant Field Values
CAN_ONLY_NON_NULL
public static final int CAN_ONLY_NON_NULL
- See Also:
- Constant Field Values
MAY_NULL
public static final int MAY_NULL
- See Also:
- Constant Field Values
CHECK_MASK
public static final int CHECK_MASK
- See Also:
- Constant Field Values
IN_COMPARISON_NULL
public static final int IN_COMPARISON_NULL
- See Also:
- Constant Field Values
IN_COMPARISON_NON_NULL
public static final int IN_COMPARISON_NON_NULL
- See Also:
- Constant Field Values
IN_ASSIGNMENT
public static final int IN_ASSIGNMENT
- See Also:
- Constant Field Values
IN_INSTANCEOF
public static final int IN_INSTANCEOF
- See Also:
- Constant Field Values
CONTEXT_MASK
public static final int CONTEXT_MASK
- See Also:
- Constant Field Values
FlowContext
public FlowContext(FlowContext parent,
ASTNode associatedNode)
breakLabel
public BranchLabel breakLabel()
checkExceptionHandlers
public void checkExceptionHandlers(TypeBinding raisedException,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope)
checkExceptionHandlers
public void checkExceptionHandlers(TypeBinding raisedException,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope,
boolean isExceptionOnAutoClose)
- Parameters:
isExceptionOnAutoClose
- This is for checking exception handlers for exceptions raised during the
auto close of resources inside a try with resources statement. (Relevant for
source levels 1.7 and above only)
checkExceptionHandlers
public void checkExceptionHandlers(TypeBinding[] raisedExceptions,
ASTNode location,
FlowInfo flowInfo,
BlockScope scope)
continueLabel
public BranchLabel continueLabel()
getInitsForFinalBlankInitializationCheck
public FlowInfo getInitsForFinalBlankInitializationCheck(TypeBinding declaringType,
FlowInfo flowInfo)
getTargetContextForBreakLabel
public FlowContext getTargetContextForBreakLabel(char[] labelName)
getTargetContextForContinueLabel
public FlowContext getTargetContextForContinueLabel(char[] labelName)
getTargetContextForDefaultBreak
public FlowContext getTargetContextForDefaultBreak()
getTargetContextForDefaultContinue
public FlowContext getTargetContextForDefaultContinue()
individualToString
public String individualToString()
initsOnBreak
public FlowInfo initsOnBreak()
initsOnReturn
public UnconditionalFlowInfo initsOnReturn()
isBreakable
public boolean isBreakable()
isContinuable
public boolean isContinuable()
isNonReturningContext
public boolean isNonReturningContext()
isSubRoutine
public boolean isSubRoutine()
labelName
public char[] labelName()
recordBreakFrom
public void recordBreakFrom(FlowInfo flowInfo)
recordBreakTo
public void recordBreakTo(FlowContext targetContext)
recordContinueFrom
public void recordContinueFrom(FlowContext innerFlowContext,
FlowInfo flowInfo)
recordFinalAssignment
protected boolean recordFinalAssignment(VariableBinding variable,
Reference finalReference)
recordNullReference
protected void recordNullReference(LocalVariableBinding local,
Expression expression,
int status)
- Record a null reference for use by deferred checks. Only looping or
finally contexts really record that information.
- Parameters:
local
- the local variable involved in the checkexpression
- the expression within which local laysstatus
- the status against which the check must be performed; one of
CAN_ONLY_NULL
, CAN_ONLY_NULL_NON_NULL
, MAY_NULL
,
CAN_ONLY_NON_NULL
, potentially
combined with a context indicator (one of IN_COMPARISON_NULL
,
IN_COMPARISON_NON_NULL
, IN_ASSIGNMENT
or IN_INSTANCEOF
)
recordReturnFrom
public void recordReturnFrom(UnconditionalFlowInfo flowInfo)
recordSettingFinal
public void recordSettingFinal(VariableBinding variable,
Reference finalReference,
FlowInfo flowInfo)
recordUsingNullReference
public void recordUsingNullReference(Scope scope,
LocalVariableBinding local,
Expression reference,
int checkType,
FlowInfo flowInfo)
- Record a null reference for use by deferred checks. Only looping or
finally contexts really record that information. The context may
emit an error immediately depending on the status of local against
flowInfo and its nature (only looping of finally contexts defer part
of the checks; nonetheless, contexts that are nested into a looping or a
finally context get affected and delegate some checks to their enclosing
context).
- Parameters:
scope
- the scope into which the check is performedlocal
- the local variable involved in the checkreference
- the expression within which local liescheckType
- the status against which the check must be performed; one
of CAN_ONLY_NULL
, CAN_ONLY_NULL_NON_NULL
, MAY_NULL
, potentially
combined with a context indicator (one of IN_COMPARISON_NULL
,
IN_COMPARISON_NON_NULL
, IN_ASSIGNMENT
or IN_INSTANCEOF
)flowInfo
- the flow info at the check point; deferring contexts will
perform supplementary checks against flow info instances that cannot
be known at the time of calling this method (they are influenced by
code that follows the current point)
subroutine
public SubRoutineStatement subroutine()
toString
public String toString()
- Overrides:
toString
in class Object
Copyright © 2012. All Rights Reserved.