Package org.fastnate.data
Class InjectDataProviderFactory
java.lang.Object
org.fastnate.data.AbstractDataProviderFactory
org.fastnate.data.InjectDataProviderFactory
- All Implemented Interfaces:
DataProviderFactory
Find and initializes
DataProviders on the classpath. Dependencies between DataProviders are injected.- Author:
- Tobias Liefke
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate EntityImporterThe parent importer, set duringcreateDataProviders(EntityImporter).private org.reflections.ReflectionsContains the class path scanner with the data provider packages. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate <C> InjectDataProviderFactory.InjectionbuildInjection(Class<C> instanceClass) voidcreateDataProviders(EntityImporter parentImporter) Discovers, builds and registers allDataProviders that are available for the current environment.private <C> InjectDataProviderFactory.InjectionfillInjection(InjectDataProviderFactory.Injection injection, Constructor<C> constructor) private Object[]fillParameters(Executable method, InjectDataProviderFactory.Injection injection) private <C> ObjectfindDependency(Member member, AnnotatedType annotatedType, InjectDataProviderFactory.Injection parentInjection) private static AnnotationfindQualifier(AnnotatedElement annotatedElement) private voidinjectFields(Class<?> instanceClass, Object instance, InjectDataProviderFactory.Injection parentInjection) private voidinjectSetters(Class<?> instanceClass, Set<String> injectedMethods, Object instance, InjectDataProviderFactory.Injection parentInjection) private voidinvokePostInitialize(Class<?> instanceClass, Set<String> calledMethods, Object instance) Methods inherited from class org.fastnate.data.AbstractDataProviderFactory
buildReflections, findImporterDependency, findProviderClasses
-
Field Details
-
injections
private final Map<InjectDataProviderFactory.Dependency,InjectDataProviderFactory.Injection> injections -
importer
The parent importer, set duringcreateDataProviders(EntityImporter). -
reflections
private org.reflections.Reflections reflectionsContains the class path scanner with the data provider packages.
-
-
Constructor Details
-
InjectDataProviderFactory
public InjectDataProviderFactory()
-
-
Method Details
-
findQualifier
-
buildInjection
-
createDataProviders
Description copied from interface:DataProviderFactoryDiscovers, builds and registers allDataProviders that are available for the current environment. Ensures that the order of the providers is set in accordance with their dependencies.- Parameters:
parentImporter- the current importer that needs the providers, new providers are added withEntityImporter.addDataProvider(DataProvider)orEntityImporter.addDataProvider(DataProvider, int)
-
fillInjection
private <C> InjectDataProviderFactory.Injection fillInjection(InjectDataProviderFactory.Injection injection, Constructor<C> constructor) -
fillParameters
-
findDependency
private <C> Object findDependency(Member member, AnnotatedType annotatedType, InjectDataProviderFactory.Injection parentInjection) -
injectFields
private void injectFields(Class<?> instanceClass, Object instance, InjectDataProviderFactory.Injection parentInjection) -
injectSetters
private void injectSetters(Class<?> instanceClass, Set<String> injectedMethods, Object instance, InjectDataProviderFactory.Injection parentInjection) -
invokePostInitialize
-