Package com.github.javaparser.ast.expr
Class TypePatternExpr
- java.lang.Object
-
- com.github.javaparser.ast.Node
-
- com.github.javaparser.ast.expr.Expression
-
- com.github.javaparser.ast.expr.PatternExpr
-
- com.github.javaparser.ast.expr.TypePatternExpr
-
- All Implemented Interfaces:
NodeWithFinalModifier<TypePatternExpr>
,NodeWithModifiers<TypePatternExpr>
,NodeWithRange<Node>
,NodeWithSimpleName<TypePatternExpr>
,NodeWithTokenRange<Node>
,NodeWithType<PatternExpr,Type>
,Observable
,Visitable
,HasParentNode<Node>
,java.lang.Cloneable
public class TypePatternExpr extends PatternExpr implements NodeWithSimpleName<TypePatternExpr>, NodeWithFinalModifier<TypePatternExpr>
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: Type 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 NodeList<Modifier>
modifiers
private SimpleName
name
-
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 TypePatternExpr()
TypePatternExpr(NodeList<Modifier> modifiers, Type type, SimpleName name)
TypePatternExpr(TokenRange tokenRange, NodeList<Modifier> modifiers, Type 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.TypePatternExpr
asTypePatternExpr()
TypePatternExpr
clone()
TypePatternExprMetaModel
getMetaModel()
NodeList<Modifier>
getModifiers()
Return the modifiers of this variable declaration.SimpleName
getName()
void
ifTypePatternExpr(java.util.function.Consumer<TypePatternExpr> action)
boolean
isTypePatternExpr()
boolean
remove(Node node)
boolean
replace(Node node, Node replacementNode)
TypePatternExpr
setModifiers(NodeList<Modifier> modifiers)
TypePatternExpr
setName(SimpleName name)
java.util.Optional<TypePatternExpr>
toTypePatternExpr()
-
Methods inherited from class com.github.javaparser.ast.expr.PatternExpr
asPatternExpr, getType, ifPatternExpr, isPatternExpr, setType, 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, asRecordPatternExpr, 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, ifRecordPatternExpr, 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, isRecordPatternExpr, 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, toRecordPatternExpr, 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, findByRange, findCompilationUnit, findData, 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
-
-
-
-
Field Detail
-
name
private SimpleName name
-
-
Constructor Detail
-
TypePatternExpr
public TypePatternExpr()
-
TypePatternExpr
public TypePatternExpr(NodeList<Modifier> modifiers, Type type, SimpleName name)
-
TypePatternExpr
public TypePatternExpr(TokenRange tokenRange, NodeList<Modifier> modifiers, Type 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<TypePatternExpr>
-
setName
public TypePatternExpr setName(SimpleName name)
- Specified by:
setName
in interfaceNodeWithSimpleName<TypePatternExpr>
-
replace
public boolean replace(Node node, Node replacementNode)
- Overrides:
replace
in classPatternExpr
-
clone
public TypePatternExpr clone()
- Overrides:
clone
in classPatternExpr
-
getMetaModel
public TypePatternExprMetaModel getMetaModel()
- Overrides:
getMetaModel
in classPatternExpr
- Returns:
- get JavaParser specific node introspection information.
-
getModifiers
public NodeList<Modifier> getModifiers()
Description copied from interface:NodeWithModifiers
Return the modifiers of this variable declaration. Warning: modifying the returned set will not trigger observers, you have to use setModifiers for that.- Specified by:
getModifiers
in interfaceNodeWithModifiers<TypePatternExpr>
- Returns:
- modifiers
- See Also:
Modifier
-
setModifiers
public TypePatternExpr setModifiers(NodeList<Modifier> modifiers)
- Specified by:
setModifiers
in interfaceNodeWithModifiers<TypePatternExpr>
-
isTypePatternExpr
public boolean isTypePatternExpr()
- Overrides:
isTypePatternExpr
in classExpression
-
asTypePatternExpr
public TypePatternExpr asTypePatternExpr()
- Overrides:
asTypePatternExpr
in classExpression
-
toTypePatternExpr
public java.util.Optional<TypePatternExpr> toTypePatternExpr()
- Overrides:
toTypePatternExpr
in classExpression
-
ifTypePatternExpr
public void ifTypePatternExpr(java.util.function.Consumer<TypePatternExpr> action)
- Overrides:
ifTypePatternExpr
in classExpression
-
-