org.eclipse.jdt.internal.compiler.flow
类 FlowContext
java.lang.Object
org.eclipse.jdt.internal.compiler.flow.FlowContext
- 所有已实现的接口:
- TypeConstants
- 直接已知子类:
- 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...
| 从接口 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 |
|
方法摘要 |
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
- 另请参见:
- 常量字段值
PREEMPT_NULL_DIAGNOSTIC
public static final int PREEMPT_NULL_DIAGNOSTIC
- 另请参见:
- 常量字段值
HIDE_NULL_COMPARISON_WARNING
public static final int HIDE_NULL_COMPARISON_WARNING
- used to hide null comparison related warnings inside assert statements
- 另请参见:
- 常量字段值
CAN_ONLY_NULL_NON_NULL
public static final int CAN_ONLY_NULL_NON_NULL
- 另请参见:
- 常量字段值
CAN_ONLY_NULL
public static final int CAN_ONLY_NULL
- 另请参见:
- 常量字段值
CAN_ONLY_NON_NULL
public static final int CAN_ONLY_NON_NULL
- 另请参见:
- 常量字段值
MAY_NULL
public static final int MAY_NULL
- 另请参见:
- 常量字段值
CHECK_MASK
public static final int CHECK_MASK
- 另请参见:
- 常量字段值
IN_COMPARISON_NULL
public static final int IN_COMPARISON_NULL
- 另请参见:
- 常量字段值
IN_COMPARISON_NON_NULL
public static final int IN_COMPARISON_NON_NULL
- 另请参见:
- 常量字段值
IN_ASSIGNMENT
public static final int IN_ASSIGNMENT
- 另请参见:
- 常量字段值
IN_INSTANCEOF
public static final int IN_INSTANCEOF
- 另请参见:
- 常量字段值
CONTEXT_MASK
public static final int CONTEXT_MASK
- 另请参见:
- 常量字段值
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)
- 参数:
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.
- 参数:
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).
- 参数:
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()
- 覆盖:
- 类
Object 中的 toString
Copyright © 2013. All Rights Reserved.