+ /**
+ * DOCUMENT ME!
+ */
+ private ClassConfiguration _classConfig;
+
+ /**
+ * Creates a new ClassAdapter object.
+ *
+ * @param aName DOCUMENT ME!
+ * @param aClassConfig DOCUMENT ME!
+ */
+ public ClassAdapter(String aName, ClassConfiguration aClassConfig) {
+ super(aName,
+ aClassConfig.getProvidedInterfaces()
+ .toArray(new ProvidedInterface[0]),
+ aClassConfig.getRequiredInterfaces()
+ .toArray(new RequiredInterface[0]));
+ _classConfig = aClassConfig;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param aScope DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ protected Object doStart(Scope aScope) {
+ Object obj = _classConfig.create(aScope);
+ _classConfig.inject(aScope, obj);
+
+ for (ProvidedInterface provided : getProvidedInterfaces()) {
+ addInterface(provided, obj, aScope);
+ }
+
+ return obj;
+ }