org.eclipse.jdt.internal.compiler.ast
Class Expression

java.lang.Object
  extended by org.eclipse.jdt.internal.compiler.ast.ASTNode
      extended by org.eclipse.jdt.internal.compiler.ast.Statement
          extended by org.eclipse.jdt.internal.compiler.ast.Expression
All Implemented Interfaces:
TypeConstants, TypeIds
Direct Known Subclasses:
AllocationExpression, Annotation, ArrayAllocationExpression, ArrayInitializer, Assignment, CastExpression, ClassLiteralAccess, JavadocArgumentExpression, JmlArrayIndexRangeExpression, JmlFreshExpression, JmlInformalExpression, JmlKeywordExpression, JmlMultiReferenceExpression, JmlQuantifiedExpression, JmlResultReference, JmlSetComprehension, JmlSubtypeExpression, Literal, MessageSend, OperatorExpression, Reference, TypeReference

public abstract class Expression
extends Statement


Field Summary
 Constant constant
           
 int implicitConversion
           
 TypeBinding resolvedType
           
 int statementEnd
           
 
Fields inherited from class org.eclipse.jdt.internal.compiler.ast.ASTNode
Bit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DisableUnnecessaryCastCheck, DiscardEnclosingInstance, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasLocalType, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsCompoundAssigned, IsDefaultConstructor, IsElseIfStatement, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsTryBlockExiting, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, Used
 
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, FLOAT, GETCLASS, INIT, INT, 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_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_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_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_ITERATOR, JML_ANNOTATION, JML_ANNOTATION_CODE_BIGINT_MATH, JML_ANNOTATION_CODE_JAVA_MATH, JML_ANNOTATION_CODE_SAFE_MATH, JML_ANNOTATION_GHOST, JML_ANNOTATION_HELPER, JML_ANNOTATION_INSTANCE, JML_ANNOTATION_MODEL, JML_ANNOTATION_NON_NULL, JML_ANNOTATION_NON_NULL_BY_DEFAULT, JML_ANNOTATION_NULLABLE, JML_ANNOTATION_NULLABLE_BY_DEFAULT, JML_ANNOTATION_PEER, JML_ANNOTATION_PKG, JML_ANNOTATION_PURE, JML_ANNOTATION_READONLY, JML_ANNOTATION_REP, JML_ANNOTATION_SPEC_BIGINT_MATH, JML_ANNOTATION_SPEC_JAVA_MATH, JML_ANNOTATION_SPEC_PROTECTED, JML_ANNOTATION_SPEC_PUBLIC, JML_ANNOTATION_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_CODE_BIGINT_MATH, JML_ANNOTATION_TYPE_CODE_JAVA_MATH, JML_ANNOTATION_TYPE_CODE_SAFE_MATH, JML_ANNOTATION_TYPE_GHOST, JML_ANNOTATION_TYPE_HELPER, JML_ANNOTATION_TYPE_INSTANCE, JML_ANNOTATION_TYPE_MODEL, JML_ANNOTATION_TYPE_NON_NULL_BY_DEFAULT, JML_ANNOTATION_TYPE_NONNULL, JML_ANNOTATION_TYPE_NULLABLE, JML_ANNOTATION_TYPE_NULLABLE_BY_DEFAULT, JML_ANNOTATION_TYPE_PEER, JML_ANNOTATION_TYPE_PURE, JML_ANNOTATION_TYPE_READONLY, JML_ANNOTATION_TYPE_REP, JML_ANNOTATION_TYPE_SPEC_BIGINT_MATH, JML_ANNOTATION_TYPE_SPEC_JAVA_MATH, JML_ANNOTATION_TYPE_SPEC_PROTECTED, JML_ANNOTATION_TYPE_SPEC_PUBLIC, JML_ANNOTATION_TYPE_SPEC_SAFE_MATH, JML_ANNOTATION_TYPE_UNINITIALIZED, JML_ANNOTATION_UNINITIALIZED, JML_ORG, JML_RUNTIME, JML_RUNTIME_ANNOTATION, JML4, JMLSPECS, 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_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, 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
 
Fields inherited from interface org.eclipse.jdt.internal.compiler.lookup.TypeIds
Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2String, Object2Object, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilIterator, T_long, T_null, T_short, T_undefined, T_void, UNBOXING
 
Constructor Summary
Expression()
           
 
Method Summary
 FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired)
          More sophisticated for of the flow analysis used for analyzing expressions, and be able to optimize out portions of expressions where no actual value is required.
 boolean checkCastTypesCompatibility(Scope scope, TypeBinding castType, TypeBinding expressionType, Expression expression)
          Returns false if cast is not legal.
 void checkNPE(BlockScope scope, FlowContext flowContext, FlowInfo flowInfo)
          Check the local variable of this expression, if any, against potential NPEs given a flow context and an upstream flow info.
 boolean checkUnsafeCast(Scope scope, TypeBinding castType, TypeBinding expressionType, TypeBinding match, boolean isNarrowing)
           
 void computeConversion(Scope scope, TypeBinding runtimeType, TypeBinding compileTimeType)
          Base types need that the widening is explicitly done by the compiler using some bytecode like i2f.
 void generateCode(BlockScope currentScope, CodeStream codeStream)
          Expression statements are plain expressions, however they generate like normal expressions with no value required.
 void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
          Every expression is responsible for generating its implicit conversion when necessary.
 void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
          Default generation of a boolean value
 void generateOptimizedStringConcatenation(BlockScope blockScope, CodeStream codeStream, int typeID)
           
 void generateOptimizedStringConcatenationCreation(BlockScope blockScope, CodeStream codeStream, int typeID)
           
 boolean isCompactableOperation()
           
 boolean isConstantValueOfTypeAssignableToType(TypeBinding constantType, TypeBinding targetType)
           
static boolean isConstantValueRepresentable(Constant constant, int constantTypeID, int targetTypeID)
           
 boolean isDeclaredMonoNonNull()
           
 boolean isDeclaredNonNull()
           
 boolean isTypeReference()
           
 LocalVariableBinding localVariableBinding()
          Returns the local variable referenced by this node.
 void markAsNonNull()
          Mark this expression as being non null, per a specific tag in the source code.
 int nullStatus(FlowInfo flowInfo)
           
 Constant optimizedBooleanConstant()
          Constant usable for bytecode pattern optimizations, but cannot be inlined since it is not strictly equivalent to the definition of constant expressions.
 TypeBinding postConversionType(Scope scope)
          Returns the type of the expression after required implicit conversions.
 java.lang.StringBuffer print(int indent, java.lang.StringBuffer output)
           
abstract  java.lang.StringBuffer printExpression(int indent, java.lang.StringBuffer output)
           
 java.lang.StringBuffer printStatement(int indent, java.lang.StringBuffer output)
           
 void resolve(BlockScope scope)
           
 TypeBinding resolveType(BlockScope scope)
          Resolve the type of this expression in the context of a blockScope
 TypeBinding resolveType(ClassScope scope)
          Resolve the type of this expression in the context of a classScope
 TypeBinding resolveTypeExpecting(BlockScope scope, TypeBinding expectedType)
           
 java.lang.Object reusableJSRTarget()
          Returns an object which can be used to identify identical JSR sequence targets (see TryStatement subroutine codegen) or null if not reusable
 void setExpectedType(TypeBinding expectedType)
          Record the type expectation before this expression is typechecked.
 void tagAsNeedCheckCast()
           
 void tagAsUnnecessaryCast(Scope scope, TypeBinding castType)
          Record the fact a cast expression got detected as being unnecessary.
 Expression toTypeReference()
           
 void traverse(ASTVisitor visitor, BlockScope scope)
          Traverse an expression in the context of a blockScope
 void traverse(ASTVisitor visitor, ClassScope scope)
          Traverse an expression in the context of a classScope
 
Methods inherited from class org.eclipse.jdt.internal.compiler.ast.Statement
branchChainTo, complainIfUnreachable, generateArguments, isEmptyBlock, isValidJavaStatement, resolveCase
 
Methods inherited from class org.eclipse.jdt.internal.compiler.ast.ASTNode
checkInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

constant

public Constant constant

statementEnd

public int statementEnd

implicitConversion

public int implicitConversion

resolvedType

public TypeBinding resolvedType
Constructor Detail

Expression

public Expression()
Method Detail

isConstantValueRepresentable

public static final boolean isConstantValueRepresentable(Constant constant,
                                                         int constantTypeID,
                                                         int targetTypeID)

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo)
Specified by:
analyseCode in class Statement

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo,
                            boolean valueRequired)
More sophisticated for of the flow analysis used for analyzing expressions, and be able to optimize out portions of expressions where no actual value is required.

Parameters:
currentScope -
flowContext -
flowInfo -
valueRequired -
Returns:
The state of initialization after the analysis of the current expression

checkCastTypesCompatibility

public final boolean checkCastTypesCompatibility(Scope scope,
                                                 TypeBinding castType,
                                                 TypeBinding expressionType,
                                                 Expression expression)
Returns false if cast is not legal.


checkNPE

public void checkNPE(BlockScope scope,
                     FlowContext flowContext,
                     FlowInfo flowInfo)
Check the local variable of this expression, if any, against potential NPEs given a flow context and an upstream flow info. If so, report the risk to the context. Marks the local as checked, which affects the flow info.

Parameters:
scope - the scope of the analysis
flowContext - the current flow context
flowInfo - the upstream flow info; caveat: may get modified

checkUnsafeCast

public boolean checkUnsafeCast(Scope scope,
                               TypeBinding castType,
                               TypeBinding expressionType,
                               TypeBinding match,
                               boolean isNarrowing)

computeConversion

public void computeConversion(Scope scope,
                              TypeBinding runtimeType,
                              TypeBinding compileTimeType)
Base types need that the widening is explicitly done by the compiler using some bytecode like i2f. Also check unsafe type operations.


generateCode

public void generateCode(BlockScope currentScope,
                         CodeStream codeStream)
Expression statements are plain expressions, however they generate like normal expressions with no value required.

Specified by:
generateCode in class Statement
Parameters:
currentScope - org.eclipse.jdt.internal.compiler.lookup.BlockScope
codeStream - org.eclipse.jdt.internal.compiler.codegen.CodeStream

generateCode

public void generateCode(BlockScope currentScope,
                         CodeStream codeStream,
                         boolean valueRequired)
Every expression is responsible for generating its implicit conversion when necessary.

Parameters:
currentScope - org.eclipse.jdt.internal.compiler.lookup.BlockScope
codeStream - org.eclipse.jdt.internal.compiler.codegen.CodeStream
valueRequired - boolean

generateOptimizedBoolean

public void generateOptimizedBoolean(BlockScope currentScope,
                                     CodeStream codeStream,
                                     BranchLabel trueLabel,
                                     BranchLabel falseLabel,
                                     boolean valueRequired)
Default generation of a boolean value

Parameters:
currentScope -
codeStream -
trueLabel -
falseLabel -
valueRequired -

generateOptimizedStringConcatenation

public void generateOptimizedStringConcatenation(BlockScope blockScope,
                                                 CodeStream codeStream,
                                                 int typeID)

generateOptimizedStringConcatenationCreation

public void generateOptimizedStringConcatenationCreation(BlockScope blockScope,
                                                         CodeStream codeStream,
                                                         int typeID)

isCompactableOperation

public boolean isCompactableOperation()

isConstantValueOfTypeAssignableToType

public boolean isConstantValueOfTypeAssignableToType(TypeBinding constantType,
                                                     TypeBinding targetType)

isTypeReference

public boolean isTypeReference()

localVariableBinding

public LocalVariableBinding localVariableBinding()
Returns the local variable referenced by this node. Can be a direct reference (SingleNameReference) or thru a cast expression etc...


markAsNonNull

public void markAsNonNull()
Mark this expression as being non null, per a specific tag in the source code.


nullStatus

public int nullStatus(FlowInfo flowInfo)

optimizedBooleanConstant

public Constant optimizedBooleanConstant()
Constant usable for bytecode pattern optimizations, but cannot be inlined since it is not strictly equivalent to the definition of constant expressions. In particular, some side-effects may be required to occur (only the end value is known).

Returns:
Constant known to be of boolean type

postConversionType

public TypeBinding postConversionType(Scope scope)
Returns the type of the expression after required implicit conversions. When expression type gets promoted or inserted a generic cast, the converted type will differ from the resolved type (surface side-effects from #computeConversion(...)).

Returns:
the type after implicit conversion

print

public java.lang.StringBuffer print(int indent,
                                    java.lang.StringBuffer output)
Overrides:
print in class Statement

printExpression

public abstract java.lang.StringBuffer printExpression(int indent,
                                                       java.lang.StringBuffer output)

printStatement

public java.lang.StringBuffer printStatement(int indent,
                                             java.lang.StringBuffer output)
Specified by:
printStatement in class Statement

resolve

public void resolve(BlockScope scope)
Specified by:
resolve in class Statement

resolveType

public TypeBinding resolveType(BlockScope scope)
Resolve the type of this expression in the context of a blockScope

Parameters:
scope -
Returns:
Return the actual type of this expression after resolution

resolveType

public TypeBinding resolveType(ClassScope scope)
Resolve the type of this expression in the context of a classScope

Parameters:
scope -
Returns:
Return the actual type of this expression after resolution

resolveTypeExpecting

public TypeBinding resolveTypeExpecting(BlockScope scope,
                                        TypeBinding expectedType)

reusableJSRTarget

public java.lang.Object reusableJSRTarget()
Returns an object which can be used to identify identical JSR sequence targets (see TryStatement subroutine codegen) or null if not reusable


setExpectedType

public void setExpectedType(TypeBinding expectedType)
Record the type expectation before this expression is typechecked. e.g. String s = foo();, foo() will be tagged as being expected of type String Used to trigger proper inference of generic method invocations.

Parameters:
expectedType - The type denoting an expectation in the context of an assignment conversion

tagAsNeedCheckCast

public void tagAsNeedCheckCast()

tagAsUnnecessaryCast

public void tagAsUnnecessaryCast(Scope scope,
                                 TypeBinding castType)
Record the fact a cast expression got detected as being unnecessary.

Parameters:
scope -
castType -

toTypeReference

public Expression toTypeReference()

traverse

public void traverse(ASTVisitor visitor,
                     BlockScope scope)
Traverse an expression in the context of a blockScope

Overrides:
traverse in class ASTNode
Parameters:
visitor -
scope -

traverse

public void traverse(ASTVisitor visitor,
                     ClassScope scope)
Traverse an expression in the context of a classScope

Parameters:
visitor -
scope -

isDeclaredNonNull

public boolean isDeclaredNonNull()

isDeclaredMonoNonNull

public boolean isDeclaredMonoNonNull()