org.eclipse.jdt.internal.compiler.flow
类 LoopingFlowContext

java.lang.Object
  继承者 org.eclipse.jdt.internal.compiler.flow.FlowContext
      继承者 org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext
          继承者 org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
所有已实现的接口:
TypeConstants

public class LoopingFlowContext
extends SwitchFlowContext

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


字段摘要
 BranchLabel continueLabel
           
 UnconditionalFlowInfo initsOnContinue
           
 
从类 org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext 继承的字段
breakLabel, initsOnBreak
 
从类 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
 
从接口 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
 
构造方法摘要
LoopingFlowContext(FlowContext parent, FlowInfo upstreamNullFlowInfo, ASTNode associatedNode, BranchLabel breakLabel, BranchLabel continueLabel, Scope associatedScope)
           
 
方法摘要
 void complainOnDeferredFinalChecks(BlockScope scope, FlowInfo flowInfo)
          Perform deferred checks relative to final variables duplicate initialization of lack of initialization.
 void complainOnDeferredNullChecks(BlockScope scope, FlowInfo callerFlowInfo)
          Perform deferred checks relative to the null status of local variables.
 BranchLabel continueLabel()
           
 boolean hasEscapingExceptions()
           
 String individualToString()
           
 boolean isContinuable()
           
 boolean isContinuedTo()
           
 void recordBreakTo(FlowContext targetContext)
           
 void recordCatchContextOfEscapingException(ExceptionHandlingFlowContext catchingContext, ReferenceBinding caughtException)
           
 void recordContinueFrom(FlowContext innerFlowContext, FlowInfo flowInfo)
           
protected  boolean recordFinalAssignment(VariableBinding binding, Reference finalAssignment)
           
protected  void recordNullReference(LocalVariableBinding local, Expression expression, int status)
          Record a null reference for use by deferred checks.
 void recordUsingNullReference(Scope scope, LocalVariableBinding local, Expression reference, int checkType, FlowInfo flowInfo)
          Record a null reference for use by deferred checks.
 void simulateThrowAfterLoopBack(FlowInfo flowInfo)
           
 
从类 org.eclipse.jdt.internal.compiler.flow.SwitchFlowContext 继承的方法
breakLabel, isBreakable, recordBreakFrom
 
从类 org.eclipse.jdt.internal.compiler.flow.FlowContext 继承的方法
checkExceptionHandlers, checkExceptionHandlers, checkExceptionHandlers, getInitsForFinalBlankInitializationCheck, getTargetContextForBreakLabel, getTargetContextForContinueLabel, getTargetContextForDefaultBreak, getTargetContextForDefaultContinue, initsOnBreak, initsOnReturn, isNonReturningContext, isSubRoutine, labelName, recordReturnFrom, recordSettingFinal, subroutine, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

continueLabel

public BranchLabel continueLabel

initsOnContinue

public UnconditionalFlowInfo initsOnContinue
构造方法详细信息

LoopingFlowContext

public LoopingFlowContext(FlowContext parent,
                          FlowInfo upstreamNullFlowInfo,
                          ASTNode associatedNode,
                          BranchLabel breakLabel,
                          BranchLabel continueLabel,
                          Scope associatedScope)
方法详细信息

complainOnDeferredFinalChecks

public void complainOnDeferredFinalChecks(BlockScope scope,
                                          FlowInfo flowInfo)
Perform deferred checks relative to final variables duplicate initialization of lack of initialization.

参数:
scope - the scope to which this context is associated
flowInfo - the flow info against which checks must be performed

complainOnDeferredNullChecks

public void complainOnDeferredNullChecks(BlockScope scope,
                                         FlowInfo callerFlowInfo)
Perform deferred checks relative to the null status of local variables.

参数:
scope - the scope to which this context is associated
callerFlowInfo - the flow info against which checks must be performed

continueLabel

public BranchLabel continueLabel()
覆盖:
FlowContext 中的 continueLabel

individualToString

public String individualToString()
覆盖:
SwitchFlowContext 中的 individualToString

isContinuable

public boolean isContinuable()
覆盖:
FlowContext 中的 isContinuable

isContinuedTo

public boolean isContinuedTo()

recordBreakTo

public void recordBreakTo(FlowContext targetContext)
覆盖:
FlowContext 中的 recordBreakTo

recordContinueFrom

public void recordContinueFrom(FlowContext innerFlowContext,
                               FlowInfo flowInfo)
覆盖:
FlowContext 中的 recordContinueFrom

recordFinalAssignment

protected boolean recordFinalAssignment(VariableBinding binding,
                                        Reference finalAssignment)
覆盖:
FlowContext 中的 recordFinalAssignment

recordNullReference

protected void recordNullReference(LocalVariableBinding local,
                                   Expression expression,
                                   int status)
从类 FlowContext 复制的描述
Record a null reference for use by deferred checks. Only looping or finally contexts really record that information.

覆盖:
FlowContext 中的 recordNullReference
参数:
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 FlowContext.IN_COMPARISON_NULL, FlowContext.IN_COMPARISON_NON_NULL, FlowContext.IN_ASSIGNMENT or FlowContext.IN_INSTANCEOF)

recordUsingNullReference

public void recordUsingNullReference(Scope scope,
                                     LocalVariableBinding local,
                                     Expression reference,
                                     int checkType,
                                     FlowInfo flowInfo)
从类 FlowContext 复制的描述
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).

覆盖:
FlowContext 中的 recordUsingNullReference
参数:
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 FlowContext.IN_COMPARISON_NULL, FlowContext.IN_COMPARISON_NON_NULL, FlowContext.IN_ASSIGNMENT or FlowContext.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)

simulateThrowAfterLoopBack

public void simulateThrowAfterLoopBack(FlowInfo flowInfo)

recordCatchContextOfEscapingException

public void recordCatchContextOfEscapingException(ExceptionHandlingFlowContext catchingContext,
                                                  ReferenceBinding caughtException)

hasEscapingExceptions

public boolean hasEscapingExceptions()


Copyright © 2013. All Rights Reserved.