Distinguish implicit components in dump
This commit is contained in:
committed by
Pavel V. Talanov
parent
41500c916b
commit
e12e67468f
@@ -115,14 +115,9 @@ public abstract class SingletonDescriptor(val container: ComponentContainer) : C
|
||||
get() = true
|
||||
}
|
||||
|
||||
public abstract class SingletonComponentDescriptor(container: ComponentContainer, val klass: Class<*>) : SingletonDescriptor(container) {
|
||||
override fun toString(): String = "Singleton: ${klass.getSimpleName()}"
|
||||
|
||||
public override fun getRegistrations(): Iterable<Type> = klass.getInfo().registrations
|
||||
}
|
||||
|
||||
public class SingletonTypeComponentDescriptor(container: ComponentContainer, klass: Class<*>) : SingletonComponentDescriptor(container, klass) {
|
||||
public open class SingletonTypeComponentDescriptor(container: ComponentContainer, val klass: Class<*>) : SingletonDescriptor(container) {
|
||||
override fun createInstance(context: ValueResolveContext): Any = createInstanceOf(klass, context)
|
||||
public override fun getRegistrations(): Iterable<Type> = klass.getInfo().registrations
|
||||
|
||||
private fun createInstanceOf(klass: Class<*>, context: ValueResolveContext): Any {
|
||||
val binding = klass.bindToConstructor(context)
|
||||
@@ -145,4 +140,12 @@ public class SingletonTypeComponentDescriptor(container: ComponentContainer, kla
|
||||
val classInfo = klass.getInfo()
|
||||
return classInfo.constructorInfo?.parameters.orEmpty() + classInfo.setterInfos.flatMap { it.parameters }
|
||||
}
|
||||
|
||||
override fun toString(): String = "Singleton: ${klass.getSimpleName()}"
|
||||
}
|
||||
|
||||
class ImplicitSingletonTypeComponentDescriptor(container: ComponentContainer, klass: Class<*>) : SingletonTypeComponentDescriptor(container, klass) {
|
||||
override fun toString(): String {
|
||||
return "Implicit: ${klass.getSimpleName()}"
|
||||
}
|
||||
}
|
||||
@@ -161,7 +161,7 @@ public class ComponentStorage(val myId: String) : ValueResolver {
|
||||
continue
|
||||
|
||||
if (!Modifier.isAbstract(rawType.getModifiers()) && !rawType.isPrimitive()) {
|
||||
val implicitDescriptor = SingletonTypeComponentDescriptor(context.container, rawType)
|
||||
val implicitDescriptor = ImplicitSingletonTypeComponentDescriptor(context.container, rawType)
|
||||
adhocDescriptors.add(implicitDescriptor)
|
||||
collectAdhocComponents(context, implicitDescriptor, visitedTypes, adhocDescriptors)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user