+ private ObjectConfiguration objectConfig;
+
+ private Object object;
+
+ /**
+ * Creates a new ObjectAdapter object.
+ *
+ */
+ public ObjectAdapter(String aName, Object aObject,
+ ObjectConfiguration aObjectConfig) {
+ super(aName, new ProvidedInterface[] { new DefaultProvidedInterface(
+ aName, aObject.getClass()) }, aObjectConfig.getRequiredInterfaces()
+ .toArray(new RequiredInterface[0]));
+ objectConfig = aObjectConfig;
+ object = aObject;
+ }
+
+ @Override
+ protected Object doStart(Scope aScope) {
+ objectConfig.inject(aScope, object);
+
+ for (ProvidedInterface provided : getProvidedInterfaces()) {
+ addInterface(provided, object, aScope);
+ }
+
+ return object;
+ }