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...


字段摘要
 ASTNode associatedNode
           
static int CAN_ONLY_NON_NULL
           
static int CAN_ONLY_NULL
           
static int CAN_ONLY_NULL_NON_NULL
           
static int CHECK_MASK
           
static int CONTEXT_MASK
           
static int DEFER_NULL_DIAGNOSTIC
           
static int HIDE_NULL_COMPARISON_WARNING
          used to hide null comparison related warnings inside assert statements
static int IN_ASSIGNMENT
           
static int IN_COMPARISON_NON_NULL
           
static int IN_COMPARISON_NULL
           
static int IN_INSTANCEOF
           
 NullInfoRegistry initsOnFinally
           
static int MAY_NULL
           
static FlowContext NotContinuableContext
           
 FlowContext parent
           
static int PREEMPT_NULL_DIAGNOSTIC
           
 int tagBits
           
 
从接口 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
 
构造方法摘要
FlowContext(FlowContext parent, ASTNode associatedNode)
           
 
方法摘要
 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()
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

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 check
expression - the expression within which local lays
status - 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 performed
local - the local variable involved in the check
reference - the expression within which local lies
checkType - 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.