Update Injector and create injectable object factory

- Using e.g. Factory<Converter> instead of the injector directly makes its purpose more specific and disallows any future abuse of the injector's functions
This commit is contained in:
ljacqu
2017-02-05 16:52:35 +01:00
parent 8ae06ed480
commit d2fccdeb80
13 changed files with 109 additions and 51 deletions
+2 -21
View File
@@ -1,12 +1,10 @@
package tools.utils;
import ch.jalu.injector.InjectorBuilder;
import ch.jalu.injector.handlers.instantiation.DependencyDescription;
import ch.jalu.injector.handlers.instantiation.Instantiation;
import ch.jalu.injector.handlers.instantiation.InstantiationProvider;
import ch.jalu.injector.handlers.instantiation.StandardInjectionProvider;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
@@ -24,7 +22,7 @@ public final class InjectorUtils {
* @return the class' dependencies, or null if no instantiation method found
*/
public static Set<Class<?>> getDependencies(Class<?> clazz) {
Instantiation<?> instantiation = getInstantiationMethod(clazz);
Instantiation<?> instantiation = new StandardInjectionProvider().safeGet(clazz);
if (instantiation == null) {
return null;
}
@@ -35,21 +33,4 @@ public final class InjectorUtils {
return dependencies;
}
/**
* Returns the instantiation method for the given class.
*
* @param clazz the class to process
* @return the instantiation method for the class, or null if none applicable
*/
public static Instantiation<?> getInstantiationMethod(Class<?> clazz) {
List<InstantiationProvider> providers = InjectorBuilder.createInstantiationProviders();
for (InstantiationProvider provider : providers) {
Instantiation<?> instantiation = provider.get(clazz);
if (instantiation != null) {
return instantiation;
}
}
return null;
}
}