package org.wamblee.system.adapters;
import org.wamblee.system.core.AbstractComponent;
-import org.wamblee.system.core.Component;
import org.wamblee.system.core.ProvidedInterface;
import org.wamblee.system.core.RequiredInterface;
import org.wamblee.system.core.Scope;
+/**
+ * A Class Adapter adapts a given class to a Component.
+ *
+ * @author Erik Brakkee
+ */
public class ClassAdapter extends AbstractComponent<Object> {
private ClassConfiguration _classConfig;
public ClassAdapter(String aName, ClassConfiguration aClassConfig) {
super(aName,
- aClassConfig.getProvidedInterfaces(),
- aClassConfig.getRequiredInterface());
+ aClassConfig.getProvidedInterfaces().toArray(new ProvidedInterface[0]),
+ aClassConfig.getRequiredInterfaces().toArray(new RequiredInterface[0]));
_classConfig = aClassConfig;
}
protected Object doStart(Scope aScope) {
Object obj = _classConfig.create(aScope);
+ _classConfig.inject(aScope, obj);
for (ProvidedInterface provided: getProvidedInterfaces()) {
addInterface(provided, obj, aScope);