Package spoon.reflect.code
Interface CtTypePattern
- All Superinterfaces:
Cloneable
,CtCodeElement
,CtElement
,CtExpression<Void>
,CtPattern
,CtQueryable
,CtTypedElement<Void>
,CtVisitable
,FactoryAccessor
,Serializable
,SourcePositionHolder
,TemplateParameter<Void>
- All Known Implementing Classes:
CtTypePatternImpl
This code element defines a type pattern, introduced in Java 16
by JEP 394.
Example:
Object obj = null; boolean longerThanTwo = false; // String s is the type pattern, declaring a local variable if (obj instanceof String s) { longerThanTwo = s.length() > 2; }
-
Method Summary
Modifier and TypeMethodDescription<C extends CtExpression<Void>>
CaddTypeCast(CtTypeReference<?> type)
Adds a type cast.clone()
Clone the element which calls this method in a new object.List<CtTypeReference<?>>
Returns the type casts if any.Returns the local variable declared by this type pattern.<C extends CtExpression<Void>>
CsetTypeCasts(List<CtTypeReference<?>> types)
Sets the type casts.setVariable(CtLocalVariable<?> variable)
Sets the local variable for this type pattern.Methods inherited from interface spoon.reflect.code.CtCodeElement
partiallyEvaluate
Methods inherited from interface spoon.reflect.declaration.CtElement
addAnnotation, addComment, asIterable, delete, descendantIterator, getAllMetadata, getAnnotatedChildren, getAnnotation, getAnnotation, getAnnotations, getComments, getDirectChildren, getDocComment, getElements, getMetadata, getMetadataKeys, getOriginalSourceFragment, getParent, getParent, getParent, getPath, getPosition, getReferencedTypes, getRoleInParent, getShortRepresentation, getValueByRole, hasAnnotation, hasParent, isImplicit, isParentInitialized, prettyprint, putMetadata, removeAnnotation, removeComment, replace, replace, setAllMetadata, setAnnotations, setComments, setDocComment, setImplicit, setParent, setPosition, setPositions, setValueByRole, toString, toStringDebug, updateAllParentsBelow
Methods inherited from interface spoon.reflect.visitor.chain.CtQueryable
filterChildren, map, map
Methods inherited from interface spoon.reflect.declaration.CtTypedElement
getType, setType
Methods inherited from interface spoon.reflect.visitor.CtVisitable
accept
Methods inherited from interface spoon.processing.FactoryAccessor
getFactory, setFactory
Methods inherited from interface spoon.template.TemplateParameter
S
-
Method Details
-
getVariable
CtLocalVariable<?> getVariable()Returns the local variable declared by this type pattern.- Returns:
- the local variable.
-
setVariable
Sets the local variable for this type pattern.- Parameters:
variable
- the variable to set for this type pattern.- Returns:
- this pattern.
-
clone
CtTypePattern clone()Description copied from interface:CtElement
Clone the element which calls this method in a new object. Note that that references are kept as is, and thus, so if you clone whole classes or methods, some parts of the cloned element (eg executable references) may still point to the initial element. In this case, consider using methodsRefactoring.copyType(CtType)
andRefactoring.copyMethod(CtMethod)
instead which does additional work beyond cloning.- Specified by:
clone
in interfaceCtCodeElement
- Specified by:
clone
in interfaceCtElement
- Specified by:
clone
in interfaceCtExpression<Void>
-
getTypeCasts
List<CtTypeReference<?>> getTypeCasts()Description copied from interface:CtExpression
Returns the type casts if any.- Specified by:
getTypeCasts
in interfaceCtExpression<Void>
-
setTypeCasts
Description copied from interface:CtExpression
Sets the type casts.- Specified by:
setTypeCasts
in interfaceCtExpression<Void>
-
addTypeCast
Description copied from interface:CtExpression
Adds a type cast.- Specified by:
addTypeCast
in interfaceCtExpression<Void>
-