Package spoon.reflect.code
Interface CtRecordPattern
- All Superinterfaces:
Cloneable,CtCodeElement,CtElement,CtExpression<Void>,CtPattern,CtQueryable,CtTypedElement<Void>,CtVisitable,FactoryAccessor,Serializable,SourcePositionHolder,TemplateParameter<Void>
- All Known Implementing Classes:
CtRecordPatternImpl
This code element defines a record pattern, introduced in Java 21
by JEP 440.
Example:
Object obj = null;
boolean longerThanTwo = false;
record MyRecord(String value) {}
// MyRecord(var string) is the record pattern
if (obj instanceof MyRecord(var string)) {
longerThanTwo = string.length() > 2;
}
-
Method Summary
Modifier and TypeMethodDescriptionaddPattern(CtPattern pattern) Adds an inner patterns to the list of inner patterns of this record.<C extends CtExpression<Void>>
CaddTypeCast(CtTypeReference<?> type) Adds a type cast.clone()Clone the element which calls this method in a new object.Returns the inner patterns of this record pattern.Returns the type of the deconstructed record.List<CtTypeReference<?>>Returns the type casts if any.setPatternList(List<CtPattern> patternList) Sets the inner patterns of this record pattern.setRecordType(CtTypeReference<?> recordType) Sets the type of the deconstructed record.<C extends CtExpression<Void>>
CsetTypeCasts(List<CtTypeReference<?>> types) Sets the type casts.Methods inherited from interface spoon.reflect.code.CtCodeElement
partiallyEvaluateMethods 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, updateAllParentsBelowMethods inherited from interface spoon.reflect.visitor.chain.CtQueryable
filterChildren, map, mapMethods inherited from interface spoon.reflect.declaration.CtTypedElement
getType, setTypeMethods inherited from interface spoon.reflect.visitor.CtVisitable
acceptMethods inherited from interface spoon.processing.FactoryAccessor
getFactory, setFactoryMethods inherited from interface spoon.template.TemplateParameter
S
-
Method Details
-
getRecordType
CtTypeReference<?> getRecordType()Returns the type of the deconstructed record.- Returns:
- the type of the deconstructed record
-
setRecordType
Sets the type of the deconstructed record.- Parameters:
recordType- the record type.- Returns:
- this pattern
-
getPatternList
Returns the inner patterns of this record pattern.- Returns:
- the inner patterns of this record pattern
-
setPatternList
Sets the inner patterns of this record pattern.- Parameters:
patternList- the list of inner patterns.- Returns:
- this pattern
-
addPattern
Adds an inner patterns to the list of inner patterns of this record.- Parameters:
pattern- the inner pattern.- Returns:
- this pattern
-
clone
CtRecordPattern clone()Description copied from interface:CtElementClone 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:
clonein interfaceCtCodeElement- Specified by:
clonein interfaceCtElement- Specified by:
clonein interfaceCtExpression<Void>- Returns:
- a clone of this element. All children are cloned, but the parent of the returned clone is set to null.
-
getTypeCasts
List<CtTypeReference<?>> getTypeCasts()Description copied from interface:CtExpressionReturns the type casts if any.- Specified by:
getTypeCastsin interfaceCtExpression<Void>- Returns:
- this object
-
setTypeCasts
Description copied from interface:CtExpressionSets the type casts.- Specified by:
setTypeCastsin interfaceCtExpression<Void>- Returns:
- this object
-
addTypeCast
Description copied from interface:CtExpressionAdds a type cast.- Specified by:
addTypeCastin interfaceCtExpression<Void>- Returns:
- this object
-