now allowing components and interfaces to be added after construction.
[utils] / system / general / src / main / java / org / wamblee / system / core / AbstractComponent.java
index b8e4e6be9b2f5276b041d44e9e61434c1c503ac0..9608f4179d2aca1a07b4ed4ed81d96d6217d9113 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]);
+       }
+       
+       protected AbstractComponent addProvidedInterface(ProvidedInterface aProvided) { 
+               _provided.add(aProvided);
+               return this; 
+       }
+       
+       protected AbstractComponent addRequiredInterface(RequiredInterface aRequired) { 
+               _required.add(aRequired);
+               return this;
+       }
+       
        @Override
        public final String getName() {
                return _name;
@@ -72,6 +86,10 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
                        _context = aContext + "." + _context;
                }
        }
+       
+       public String getContext() {
+               return _context;
+       }
 
        @Override
        public String getQualifiedName() {