Class ExtensionUtils
- java.lang.Object
-
- org.junit.jupiter.engine.descriptor.ExtensionUtils
-
final class ExtensionUtils extends java.lang.ObjectCollection of utilities for working with extensions and the extension registry.- Since:
- 5.1
- See Also:
ExtensionRegistrar,MutableExtensionRegistry,ExtendWith,RegisterExtension
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Comparator<java.lang.reflect.Field>orderComparatorprivate static java.util.function.Predicate<java.lang.reflect.Field>registersExtensionPredicatewhich determines if aFieldregisters an extension via@RegisterExtensionor@ExtendWith.
-
Constructor Summary
Constructors Modifier Constructor Description privateExtensionUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static intgetOrder(java.lang.reflect.Field field)(package private) static MutableExtensionRegistrypopulateNewExtensionRegistryFromExtendWithAnnotation(MutableExtensionRegistry parentRegistry, java.lang.reflect.AnnotatedElement annotatedElement)Populate a newMutableExtensionRegistryfrom extension types declared via@ExtendWithon the suppliedAnnotatedElement.private static org.junit.jupiter.api.extension.ExtensionreadAndValidateExtensionFromField(java.lang.reflect.Field field, java.lang.Object instance, java.util.List<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> declarativeExtensionTypes)(package private) static voidregisterExtensionsFromConstructorParameters(ExtensionRegistrar registrar, java.lang.Class<?> clazz)Register extensions using the supplied registrar from parameters in the declared constructor of the supplied class that are annotated with@ExtendWith.(package private) static voidregisterExtensionsFromExecutableParameters(ExtensionRegistrar registrar, java.lang.reflect.Executable executable)Register extensions using the supplied registrar from parameters in the suppliedExecutable(i.e., aConstructororMethod) that are annotated with@ExtendWith.(package private) static voidregisterExtensionsFromInstanceFields(ExtensionRegistrar registrar, java.lang.Class<?> clazz)Register extensions using the supplied registrar from instance fields in the supplied class that are annotated with@ExtendWithor@RegisterExtension.(package private) static voidregisterExtensionsFromStaticFields(ExtensionRegistrar registrar, java.lang.Class<?> clazz)Register extensions using the supplied registrar from static fields in the supplied class that are annotated with@ExtendWithor@RegisterExtension.private static java.util.stream.Stream<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>>streamDeclarativeExtensionTypes(java.lang.reflect.AnnotatedElement annotatedElement)private static java.util.stream.Stream<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>>streamDeclarativeExtensionTypes(java.util.List<org.junit.jupiter.api.extension.ExtendWith> extendWithAnnotations)private static java.util.stream.Stream<java.lang.reflect.Field>streamExtensionRegisteringFields(java.lang.Class<?> clazz, java.util.function.Predicate<java.lang.reflect.Field> predicate)
-
-
-
Field Detail
-
orderComparator
private static final java.util.Comparator<java.lang.reflect.Field> orderComparator
- Since:
- 5.4
-
registersExtension
private static final java.util.function.Predicate<java.lang.reflect.Field> registersExtension
Predicatewhich determines if aFieldregisters an extension via@RegisterExtensionor@ExtendWith.- Since:
- 5.11.3
-
-
Method Detail
-
populateNewExtensionRegistryFromExtendWithAnnotation
static MutableExtensionRegistry populateNewExtensionRegistryFromExtendWithAnnotation(MutableExtensionRegistry parentRegistry, java.lang.reflect.AnnotatedElement annotatedElement)
Populate a newMutableExtensionRegistryfrom extension types declared via@ExtendWithon the suppliedAnnotatedElement.- Parameters:
parentRegistry- the parent extension registry to set in the newly created registry; nevernullannotatedElement- the annotated element on which to search for declarations of@ExtendWith; nevernull- Returns:
- the new extension registry; never
null - Since:
- 5.0
-
registerExtensionsFromStaticFields
static void registerExtensionsFromStaticFields(ExtensionRegistrar registrar, java.lang.Class<?> clazz)
Register extensions using the supplied registrar from static fields in the supplied class that are annotated with@ExtendWithor@RegisterExtension.The extensions will be sorted according to
@Ordersemantics prior to registration.- Parameters:
registrar- the registrar with which to register the extensions; nevernullclazz- the class or interface in which to find the fields; nevernull- Since:
- 5.11
-
registerExtensionsFromInstanceFields
static void registerExtensionsFromInstanceFields(ExtensionRegistrar registrar, java.lang.Class<?> clazz)
Register extensions using the supplied registrar from instance fields in the supplied class that are annotated with@ExtendWithor@RegisterExtension.The extensions will be sorted according to
@Ordersemantics prior to registration.- Parameters:
registrar- the registrar with which to register the extensions; nevernullclazz- the class or interface in which to find the fields; nevernull- Since:
- 5.11
-
readAndValidateExtensionFromField
private static org.junit.jupiter.api.extension.Extension readAndValidateExtensionFromField(java.lang.reflect.Field field, java.lang.Object instance, java.util.List<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> declarativeExtensionTypes)- Since:
- 5.11
-
registerExtensionsFromConstructorParameters
static void registerExtensionsFromConstructorParameters(ExtensionRegistrar registrar, java.lang.Class<?> clazz)
Register extensions using the supplied registrar from parameters in the declared constructor of the supplied class that are annotated with@ExtendWith.- Parameters:
registrar- the registrar with which to register the extensions; nevernullclazz- the class in which to find the declared constructor; nevernull- Since:
- 5.8
-
registerExtensionsFromExecutableParameters
static void registerExtensionsFromExecutableParameters(ExtensionRegistrar registrar, java.lang.reflect.Executable executable)
Register extensions using the supplied registrar from parameters in the suppliedExecutable(i.e., aConstructororMethod) that are annotated with@ExtendWith.- Parameters:
registrar- the registrar with which to register the extensions; nevernullexecutable- the constructor or method whose parameters should be searched; nevernull- Since:
- 5.8
-
streamExtensionRegisteringFields
private static java.util.stream.Stream<java.lang.reflect.Field> streamExtensionRegisteringFields(java.lang.Class<?> clazz, java.util.function.Predicate<java.lang.reflect.Field> predicate)- Since:
- 5.11
-
streamDeclarativeExtensionTypes
private static java.util.stream.Stream<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> streamDeclarativeExtensionTypes(java.lang.reflect.AnnotatedElement annotatedElement)
- Since:
- 5.11
-
streamDeclarativeExtensionTypes
private static java.util.stream.Stream<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> streamDeclarativeExtensionTypes(java.util.List<org.junit.jupiter.api.extension.ExtendWith> extendWithAnnotations)
- Since:
- 5.11
-
getOrder
private static int getOrder(java.lang.reflect.Field field)
- Since:
- 5.4
-
-