Package com.github.javaparser.ast.expr
Class PatternExpr
- java.lang.Object
-
- com.github.javaparser.ast.Node
-
- com.github.javaparser.ast.expr.Expression
-
- com.github.javaparser.ast.expr.PatternExpr
-
- All Implemented Interfaces:
NodeWithRange<Node>
,NodeWithSimpleName<PatternExpr>
,NodeWithTokenRange<Node>
,NodeWithType<PatternExpr,ReferenceType>
,Observable
,Visitable
,HasParentNode<Node>
,java.lang.Cloneable
public class PatternExpr extends Expression implements NodeWithSimpleName<PatternExpr>, NodeWithType<PatternExpr,ReferenceType>
The instanceof statement
Java 1.0 to 13
Not available.
Java 14
Since JDK14, it is possible to bind a variable that is cast to the type being tested against. This is referred to as aPattern
within JEP305, and avoids the need to cast to the desired type.
Example:
tool instanceof Drill d ^^^^^^^ Pattern
Note: While this is exclusively used withininstanceof
operators for now, JEP305 suggests this might be used more widely in the future (e.g. in switch expressions/statements).
JDK14 Grammar
Per JEP305 (not currently listed within the JLS):
Pattern: ReferenceType Identifier
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.github.javaparser.ast.Node
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal
-
-
Field Summary
Fields Modifier and Type Field Description private SimpleName
name
private ReferenceType
type
-
Fields inherited from class com.github.javaparser.ast.Node
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, LINE_SEPARATOR_KEY, NODE_BY_BEGIN_POSITION, PHANTOM_KEY, prettyPrinterNoCommentsConfiguration, PRINTER_KEY, SYMBOL_RESOLVER_KEY
-
-
Constructor Summary
Constructors Constructor Description PatternExpr()
PatternExpr(ReferenceType type, SimpleName name)
PatternExpr(TokenRange tokenRange, ReferenceType type, SimpleName name)
This constructor is used by the parser and is considered private.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,A>
Raccept(GenericVisitor<R,A> v, A arg)
Accept method for visitor support.<A> void
accept(VoidVisitor<A> v, A arg)
Accept method for visitor support.PatternExpr
asPatternExpr()
PatternExpr
clone()
PatternExprMetaModel
getMetaModel()
SimpleName
getName()
ReferenceType
getType()
Gets the typevoid
ifPatternExpr(java.util.function.Consumer<PatternExpr> action)
boolean
isPatternExpr()
boolean
replace(Node node, Node replacementNode)
PatternExpr
setName(SimpleName name)
PatternExpr
setType(ReferenceType type)
Sets the typejava.util.Optional<PatternExpr>
toPatternExpr()
-
Methods inherited from class com.github.javaparser.ast.expr.Expression
appearsInAssignmentContext, appearsInInvocationContext, asAnnotationExpr, asArrayAccessExpr, asArrayCreationExpr, asArrayInitializerExpr, asAssignExpr, asBinaryExpr, asBooleanLiteralExpr, asCastExpr, asCharLiteralExpr, asClassExpr, asConditionalExpr, asDoubleLiteralExpr, asEnclosedExpr, asFieldAccessExpr, asInstanceOfExpr, asIntegerLiteralExpr, asLambdaExpr, asLiteralExpr, asLiteralStringValueExpr, asLongLiteralExpr, asMarkerAnnotationExpr, asMethodCallExpr, asMethodReferenceExpr, asNameExpr, asNormalAnnotationExpr, asNullLiteralExpr, asObjectCreationExpr, asSingleMemberAnnotationExpr, asStringLiteralExpr, asSuperExpr, asSwitchExpr, asTextBlockLiteralExpr, asThisExpr, asTypeExpr, asUnaryExpr, asVariableDeclarationExpr, calculateResolvedType, elidesTypeArguments, ifAnnotationExpr, ifArrayAccessExpr, ifArrayCreationExpr, ifArrayInitializerExpr, ifAssignExpr, ifBinaryExpr, ifBooleanLiteralExpr, ifCastExpr, ifCharLiteralExpr, ifClassExpr, ifConditionalExpr, ifDoubleLiteralExpr, ifEnclosedExpr, ifFieldAccessExpr, ifInstanceOfExpr, ifIntegerLiteralExpr, ifLambdaExpr, ifLiteralExpr, ifLiteralStringValueExpr, ifLongLiteralExpr, ifMarkerAnnotationExpr, ifMethodCallExpr, ifMethodReferenceExpr, ifNameExpr, ifNormalAnnotationExpr, ifNullLiteralExpr, ifObjectCreationExpr, ifSingleMemberAnnotationExpr, ifStringLiteralExpr, ifSuperExpr, ifSwitchExpr, ifTextBlockLiteralExpr, ifThisExpr, ifTypeExpr, ifUnaryExpr, ifVariableDeclarationExpr, isAnnotationExpr, isArrayAccessExpr, isArrayCreationExpr, isArrayInitializerExpr, isAssignExpr, isAssignmentContext, isBinaryExpr, isBooleanLiteralExpr, isCastExpr, isCharLiteralExpr, isClassExpr, isConditionalExpr, isDoubleLiteralExpr, isEnclosedExpr, isFieldAccessExpr, isInstanceOfExpr, isIntegerLiteralExpr, isInvocationContext, isLambdaExpr, isLiteralExpr, isLiteralStringValueExpr, isLongLiteralExpr, isMarkerAnnotationExpr, isMethodCallExpr, isMethodReferenceExpr, isNameExpr, isNormalAnnotationExpr, isNullLiteralExpr, isObjectCreationExpr, isPolyExpression, isQualified, isSingleMemberAnnotationExpr, isStandaloneExpression, isStringLiteralExpr, isSuperExpr, isSwitchExpr, isTextBlockLiteralExpr, isThisExpr, isTypeExpr, isUnaryExpr, isVariableDeclarationExpr, toAnnotationExpr, toArrayAccessExpr, toArrayCreationExpr, toArrayInitializerExpr, toAssignExpr, toBinaryExpr, toBooleanLiteralExpr, toCastExpr, toCharLiteralExpr, toClassExpr, toConditionalExpr, toDoubleLiteralExpr, toEnclosedExpr, toFieldAccessExpr, toInstanceOfExpr, toIntegerLiteralExpr, toLambdaExpr, toLiteralExpr, toLiteralStringValueExpr, toLongLiteralExpr, toMarkerAnnotationExpr, toMethodCallExpr, toMethodReferenceExpr, toNameExpr, toNormalAnnotationExpr, toNullLiteralExpr, toObjectCreationExpr, toSingleMemberAnnotationExpr, toStringLiteralExpr, toSuperExpr, toSwitchExpr, toTextBlockLiteralExpr, toThisExpr, toTypeExpr, toUnaryExpr, toVariableDeclarationExpr
-
Methods inherited from class com.github.javaparser.ast.Node
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, customInitialization, equals, findAll, findAll, findAll, findCompilationUnit, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getDataKeys, getDefaultPrinterConfiguration, getLineEndingStyle, getLineEndingStyleOrDefault, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getPrinter, getPrinter, getRange, getSymbolResolver, getTokenRange, hashCode, hasScope, isAncestorOf, isPhantom, isRegistered, notifyPropertyChange, register, register, registerForSubtree, remove, remove, removeComment, removeData, removeForced, removeOrphanComment, replace, setAsParentNodeOf, setAsParentNodeOf, setBlockComment, setComment, setData, setLineComment, setParentNode, setParsed, setRange, setTokenRange, stream, stream, toString, toString, tryAddImportToParentCompilationUnit, unregister, walk, walk, walk
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOf
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithRange
containsWithin, containsWithinRange, getBegin, getEnd, hasRange
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithSimpleName
getNameAsExpression, getNameAsString, setName
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithType
getTypeAsString, setType, setType, tryAddImportToParentCompilationUnit
-
-
-
-
Field Detail
-
name
private SimpleName name
-
type
private ReferenceType type
-
-
Constructor Detail
-
PatternExpr
public PatternExpr()
-
PatternExpr
public PatternExpr(ReferenceType type, SimpleName name)
-
PatternExpr
public PatternExpr(TokenRange tokenRange, ReferenceType type, SimpleName name)
This constructor is used by the parser and is considered private.
-
-
Method Detail
-
accept
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.- Specified by:
accept
in interfaceVisitable
- Type Parameters:
R
- the type of the return value of the visitorA
- the type the user argument passed to the visitor- Parameters:
v
- the visitor implementationarg
- the argument passed to the visitor (of type A)- Returns:
- the result of the visit (of type R)
-
accept
public <A> void accept(VoidVisitor<A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.
-
getName
public SimpleName getName()
- Specified by:
getName
in interfaceNodeWithSimpleName<PatternExpr>
-
getType
public ReferenceType getType()
Description copied from interface:NodeWithType
Gets the type- Specified by:
getType
in interfaceNodeWithType<PatternExpr,ReferenceType>
- Returns:
- the type
-
setName
public PatternExpr setName(SimpleName name)
- Specified by:
setName
in interfaceNodeWithSimpleName<PatternExpr>
-
setType
public PatternExpr setType(ReferenceType type)
Description copied from interface:NodeWithType
Sets the type- Specified by:
setType
in interfaceNodeWithType<PatternExpr,ReferenceType>
- Parameters:
type
- the type- Returns:
- this
-
isPatternExpr
public boolean isPatternExpr()
- Overrides:
isPatternExpr
in classExpression
-
asPatternExpr
public PatternExpr asPatternExpr()
- Overrides:
asPatternExpr
in classExpression
-
toPatternExpr
public java.util.Optional<PatternExpr> toPatternExpr()
- Overrides:
toPatternExpr
in classExpression
-
ifPatternExpr
public void ifPatternExpr(java.util.function.Consumer<PatternExpr> action)
- Overrides:
ifPatternExpr
in classExpression
-
clone
public PatternExpr clone()
- Overrides:
clone
in classExpression
-
getMetaModel
public PatternExprMetaModel getMetaModel()
- Overrides:
getMetaModel
in classExpression
- Returns:
- get JavaParser specific node introspection information.
-
-