Package spoon.reflect.code
Interface CtCasePattern
- All Superinterfaces:
Cloneable,CtCodeElement,CtElement,CtExpression<Void>,CtQueryable,CtTypedElement<Void>,CtVisitable,FactoryAccessor,Serializable,SourcePositionHolder,TemplateParameter<Void>
- All Known Implementing Classes:
CtCasePatternImpl
This code element represents a case pattern, introduced in Java 21
by JEP 441.
Example:
Number num = Math.random() < 0.5 ? Integer.valueOf(1) : Double.valueOf(10.5);
switch (num) {
case Integer i -> System.out.println("int: " + i);
case Double d when d > 0.5 -> System.out.println("double: " + d);
case null, default -> System.out.println("other");
}
-
Method Summary
Modifier and TypeMethodDescriptionclone()Clone the element which calls this method in a new object.Returns the pattern of of this case pattern.setPattern(CtPattern pattern) Sets the pattern for this case pattern.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.code.CtExpression
addTypeCast, getTypeCasts, setTypeCastsMethods 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
-
getPattern
CtPattern getPattern()Returns the pattern of of this case pattern.- Returns:
- the pattern of of this case pattern
-
setPattern
Sets the pattern for this case pattern.- Parameters:
pattern- the new pattern for this case pattern.- Returns:
- this case pattern.
-
clone
CtCasePattern 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.
-