@Beta @PublicAPI public final class Discovery extends Object
Please note that this class is marked with Beta annotation, so it can be subject of incompatible changes
 or removal in later releases.
| Modifier and Type | Method and Description | 
|---|---|
static <T extends Annotation> | 
getAnnotation(Class<T> a,
             Object o)
Retrieve an annotation on an object. 
 | 
static <T extends Annotation> | 
getAnnotationForClass(Class<T> annotationClass,
                     Class<?> clazz)
Retrieve annotation for a class. 
 | 
static <T extends Annotation> | 
getAnnotationIfPresent(Class<T> a,
                      Object o)
Retrieve an annotation on an object if present. 
 | 
static Description | 
getDescriptionAnnotation(Object o)
Retrieve the description annotation on an object. 
 | 
static <T> Optional<ParameterBuilder<T>> | 
initializeBuilderIfExists(T o)
Create initial Builder if possible. 
 | 
static boolean | 
isParametrized(Object o)
Check if an object is parametrized. 
 | 
static <T> List<CreatorWrapper<T>> | 
listCreators(Object o,
            Class<T> targetType)
CreatorWrapper acts as a type-dependent service loader. 
 | 
static <T> List<InstanceWrapper<T>> | 
listInstances(Class<T> type)
Collect instances of a specific type. 
 | 
static List<ParameterWrapper> | 
listParameters(Object o)
Retrieve parameters for a mutable parameter object. 
 | 
static <T> Optional<InstanceWrapper<T>> | 
selectInstance(Class<T> type,
              String shortName)
Look up an instance by its short name. 
 | 
@Beta public static <T> List<InstanceWrapper<T>> listInstances(Class<T> type)
T - Type to collecttype - Type to collectpublic static <T> Optional<InstanceWrapper<T>> selectInstance(Class<T> type, String shortName)
T - Type to collecttype - Type to collect (by listInstances(java.lang.Class)shortName - Short name of the instance to select@Beta public static boolean isParametrized(Object o)
o - Object in question@Beta public static List<ParameterWrapper> listParameters(Object o)
Parametrized.parameterSetMode() on the objects Parametrized
 annotation.o - Mutable parametrized object annotated with ParametrizedIllegalArgumentException - when o is not annotated with Parametrized or no parameters found@Beta public static <T extends Annotation> T getAnnotationForClass(Class<T> annotationClass, Class<?> clazz)
T - Annotation classannotationClass - Annotation classclazz - Target classIllegalArgumentException - when no Description annotation found@Beta public static <T extends Annotation> Optional<T> getAnnotationIfPresent(Class<T> a, Object o)
T - Annotation classa - Annotation classo - Object to examine@Beta public static <T extends Annotation> T getAnnotation(Class<T> a, Object o)
T - Annotation classa - Annotation classo - Object to examineIllegalArgumentException - when no annotation found@Beta public static Description getDescriptionAnnotation(Object o)
o - Object to examineIllegalArgumentException - when no Description annotation found@Beta public static <T> List<CreatorWrapper<T>> listCreators(Object o, Class<T> targetType)
Note that the order of the returned list is defined by
T - type to be createdtargetType - type to be createdo - Instance on which the creators should be called@Beta public static <T> Optional<ParameterBuilder<T>> initializeBuilderIfExists(T o)
Builder association is identified by annotation BuilderClass
T - Parameter object typeo - An object