Package spoon.reflect.declaration
Interface CtProvidedService
-
- All Superinterfaces:
Cloneable
,CtElement
,CtModuleDirective
,CtQueryable
,CtVisitable
,FactoryAccessor
,Serializable
,SourcePositionHolder
- All Known Implementing Classes:
CtProvidedServiceImpl
public interface CtProvidedService extends CtModuleDirective
Represents a provided service in aCtModule
. The provides directive specifies a service for which the with clause specifies one or more service providers to java.util.ServiceLoader. The service must be a class type, an interface type, or an annotation type. It is a compile-time error if a provides directive specifies an enum type as the service. The service may be declared in the current module or in another module. If the service is not declared in the current module, then the service must be accessible to code in the current module, or a compile-time error occurs. Every service provider must be a class type or an interface type, that is public, and that is top level or nested static, or a compile-time error occurs. Every service provider must be declared in the current module, or a compile-time error occurs. It is a compile-time error if more than one provides directive in a module declaration specifies the same service. It is a compile-time error if the with clause of a given provides directive specifies the same service provider more than once. Example:provides com.example.foo.spi.Itf with com.example.foo.Impl;
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends CtProvidedService>
TaddImplementationType(CtTypeReference usedType)
CtProvidedService
clone()
Clone the element which calls this method in a new object.List<CtTypeReference>
getImplementationTypes()
CtTypeReference
getServiceType()
<T extends CtProvidedService>
TsetImplementationTypes(List<CtTypeReference> usedTypes)
<T extends CtProvidedService>
TsetServiceType(CtTypeReference providingType)
-
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.visitor.CtVisitable
accept
-
Methods inherited from interface spoon.processing.FactoryAccessor
getFactory, setFactory
-
-
-
-
Method Detail
-
getServiceType
CtTypeReference getServiceType()
-
setServiceType
<T extends CtProvidedService> T setServiceType(CtTypeReference providingType)
-
getImplementationTypes
List<CtTypeReference> getImplementationTypes()
-
setImplementationTypes
<T extends CtProvidedService> T setImplementationTypes(List<CtTypeReference> usedTypes)
-
addImplementationType
<T extends CtProvidedService> T addImplementationType(CtTypeReference usedType)
-
clone
CtProvidedService 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.
-
-