+ /**
+ * DOCUMENT ME!
+ */
+ private ObjectConfiguration objectConfig;
+
+ /**
+ * DOCUMENT ME!
+ */
+ private Object object;
+
+ /**
+ * Creates a new ObjectAdapter object.
+ *
+ * @param aName DOCUMENT ME!
+ * @param aObject DOCUMENT ME!
+ * @param aObjectConfig DOCUMENT ME!
+ */
+ 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;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param aScope DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ protected Object doStart(Scope aScope) {
+ objectConfig.inject(aScope, object);
+
+ for (ProvidedInterface provided : getProvidedInterfaces()) {
+ addInterface(provided, object, aScope);
+ }
+
+ return object;
+ }