added default container to support classes directly.
[utils] / system / general / src / main / java / org / wamblee / system / core / AbstractComponent.java
index b8e4e6be9b2f5276b041d44e9e61434c1c503ac0..28bb6ff19b28b0f93988695525f672d9fec35bb5 100644 (file)
@@ -58,7 +58,21 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
                _required = new ArrayList<RequiredInterface>();
                _required.addAll(Arrays.asList(aRequired));
        }
-
+       
+       protected AbstractComponent(String aName) {
+               this(aName, new ProvidedInterface[0], new RequiredInterface[0]);
+       }
+       
+       public AbstractComponent addProvidedInterface(ProvidedInterface aProvided) { 
+               _provided.add(aProvided);
+               return this; 
+       }
+       
+       public AbstractComponent addRequiredInterface(RequiredInterface aRequired) { 
+               _required.add(aRequired);
+               return this;
+       }
+       
        @Override
        public final String getName() {
                return _name;
@@ -72,6 +86,11 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
                        _context = aContext + "." + _context;
                }
        }
+       
+       @Override
+       public String getContext() {
+               return _context;
+       }
 
        @Override
        public String getQualifiedName() {