Alle implementierten Schnittstellen:
TypeConstants, TypeIds
Bekannte direkte Unterklassen:
GuardedPattern, TypePattern

public abstract class Pattern extends Expression
  • Felddetails

    • secretPatternVariable

      public LocalVariableBinding secretPatternVariable
    • containsTypeElidedPatternVar

      public Boolean containsTypeElidedPatternVar
    • accessorMethod

      protected MethodBinding accessorMethod
    • nestingLevel

      public int nestingLevel
  • Konstruktordetails

    • Pattern

      public Pattern()
  • Methodendetails

    • containsPatternVariable

      public boolean containsPatternVariable()
      Setzt außer Kraft:
      containsPatternVariable in Klasse Statement
    • getEnclosingPattern

      public Pattern getEnclosingPattern()
      Gibt zurück:
      the enclosingPattern
    • setEnclosingPattern

      public void setEnclosingPattern(Pattern enclosingPattern)
      Parameter:
      enclosingPattern - the enclosingPattern to set
    • coversType

      public boolean coversType(TypeBinding type)
      Implement the rules in the spec under 14.11.1.1 Exhaustive Switch Blocks
      Parameter:
      type -
      Gibt zurück:
      whether pattern covers the given type or not
    • resolveAtType

      public TypeBinding resolveAtType(BlockScope scope, TypeBinding type)
    • resolveType

      public TypeBinding resolveType(BlockScope scope)
      Beschreibung aus Klasse kopiert: Expression
      Resolve the type of this expression in the context of a blockScope
      Setzt außer Kraft:
      resolveType in Klasse Expression
      Parameter:
      scope -
      Gibt zurück:
      Return the actual type of this expression after resolution
    • resolveType

      public TypeBinding resolveType(BlockScope scope, boolean isPatternVariable)
    • isAlwaysTrue

      public boolean isAlwaysTrue()
    • generateCode

      public void generateCode(BlockScope currentScope, CodeStream codeStream)
      Beschreibung aus Klasse kopiert: Expression
      Expression statements are plain expressions, however they generate like normal expressions with no value required.
      Setzt außer Kraft:
      generateCode in Klasse Expression
      Parameter:
      currentScope - org.eclipse.jdt.internal.compiler.lookup.BlockScope
      codeStream - org.eclipse.jdt.internal.compiler.codegen.CodeStream
    • suspendVariables

      public void suspendVariables(CodeStream codeStream, BlockScope scope)
    • resumeVariables

      public void resumeVariables(CodeStream codeStream, BlockScope scope)
    • generateOptimizedBoolean

      public abstract void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel)
    • generatePatternVariable

      protected abstract void generatePatternVariable(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel)
    • wrapupGeneration

      protected abstract void wrapupGeneration(CodeStream codeStream)
    • getType

      public TypeReference getType()
    • resolveWithExpression

      public abstract void resolveWithExpression(BlockScope scope, Expression expression)
    • setTargetSupplier

      public void setTargetSupplier(Supplier<BranchLabel> targetSupplier)
    • isPatternTypeCompatible

      protected abstract boolean isPatternTypeCompatible(TypeBinding other, BlockScope scope)
    • dominates

      public abstract boolean dominates(Pattern p)
    • primary

      public Pattern primary()
    • print

      public StringBuffer print(int indent, StringBuffer output)
      Setzt außer Kraft:
      print in Klasse Expression