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:
NodeWithFinalModifier<PatternExpr>,NodeWithModifiers<PatternExpr>,NodeWithRange<Node>,NodeWithSimpleName<PatternExpr>,NodeWithTokenRange<Node>,NodeWithType<PatternExpr,ReferenceType>,Observable,Visitable,HasParentNode<Node>,Cloneable
public class PatternExpr extends Expression implements NodeWithSimpleName<PatternExpr>, NodeWithType<PatternExpr,ReferenceType>, NodeWithFinalModifier<PatternExpr>
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 aPatternwithin JEP305, and avoids the need to cast to the desired type.
Example:
tool instanceof Drill d ^^^^^^^ Pattern
Note: While this is exclusively used withininstanceofoperators 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 inherited from class com.github.javaparser.ast.expr.Expression
EXCLUDE_ENCLOSED_EXPR, IS_NOT_ENCLOSED_EXPR
-
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(NodeList<Modifier> modifiers, ReferenceType type, SimpleName name)PatternExpr(TokenRange tokenRange, NodeList<Modifier> modifiers, 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> voidaccept(VoidVisitor<A> v, A arg)Accept method for visitor support.PatternExprasPatternExpr()PatternExprclone()PatternExprMetaModelgetMetaModel()NodeList<Modifier>getModifiers()Return the modifiers of this variable declaration.SimpleNamegetName()ReferenceTypegetType()Gets the typevoidifPatternExpr(Consumer<PatternExpr> action)booleanisPatternExpr()booleanremove(Node node)booleanreplace(Node node, Node replacementNode)PatternExprsetModifiers(NodeList<Modifier> modifiers)PatternExprsetName(SimpleName name)PatternExprsetType(ReferenceType type)Sets the typeOptional<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, 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.modifiers.NodeWithFinalModifier
isFinal, setFinal
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithModifiers
addModifier, getAccessSpecifier, hasModifier, removeModifier, setModifier, setModifiers
-
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
-
-
-
-
Constructor Detail
-
PatternExpr
public PatternExpr()
-
PatternExpr
public PatternExpr(NodeList<Modifier> modifiers, ReferenceType type, SimpleName name)
-
PatternExpr
public PatternExpr(TokenRange tokenRange, NodeList<Modifier> modifiers, 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:VisitableAccept method for visitor support.- Specified by:
acceptin 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:VisitableAccept method for visitor support.
-
getName
public SimpleName getName()
- Specified by:
getNamein interfaceNodeWithSimpleName<PatternExpr>
-
getType
public ReferenceType getType()
Description copied from interface:NodeWithTypeGets the type- Specified by:
getTypein interfaceNodeWithType<PatternExpr,ReferenceType>- Returns:
- the type
-
setName
public PatternExpr setName(SimpleName name)
- Specified by:
setNamein interfaceNodeWithSimpleName<PatternExpr>
-
setType
public PatternExpr setType(ReferenceType type)
Description copied from interface:NodeWithTypeSets the type- Specified by:
setTypein interfaceNodeWithType<PatternExpr,ReferenceType>- Parameters:
type- the type- Returns:
- this
-
isPatternExpr
public boolean isPatternExpr()
- Overrides:
isPatternExprin classExpression
-
asPatternExpr
public PatternExpr asPatternExpr()
- Overrides:
asPatternExprin classExpression
-
toPatternExpr
public Optional<PatternExpr> toPatternExpr()
- Overrides:
toPatternExprin classExpression
-
ifPatternExpr
public void ifPatternExpr(Consumer<PatternExpr> action)
- Overrides:
ifPatternExprin classExpression
-
clone
public PatternExpr clone()
- Overrides:
clonein classExpression
-
getMetaModel
public PatternExprMetaModel getMetaModel()
- Overrides:
getMetaModelin classExpression- Returns:
- get JavaParser specific node introspection information.
-
getModifiers
public NodeList<Modifier> getModifiers()
Description copied from interface:NodeWithModifiersReturn the modifiers of this variable declaration. Warning: modifying the returned set will not trigger observers, you have to use setModifiers for that.- Specified by:
getModifiersin interfaceNodeWithModifiers<PatternExpr>- Returns:
- modifiers
- See Also:
Modifier
-
setModifiers
public PatternExpr setModifiers(NodeList<Modifier> modifiers)
- Specified by:
setModifiersin interfaceNodeWithModifiers<PatternExpr>
-
-