Huge refactoring.
[utils] / trunk / system / general / src / main / java / org / wamblee / system / core / DefaultRequiredInterface.java
index 32276a25cc26d7237e479f379b5b94309773e3ae..9927b517f9c9accf0618fcfba2e4f065c09889ea 100644 (file)
@@ -20,6 +20,7 @@ import java.util.Arrays;
 public class DefaultRequiredInterface implements RequiredInterface {
 
        private String _name;
+       private boolean _optional; 
        private Class[] _required;
        private ProvidedInterface _provider; 
        
@@ -28,7 +29,17 @@ public class DefaultRequiredInterface implements RequiredInterface {
        }
 
        public DefaultRequiredInterface(String aName, Class[] aInterfaces) {
+               this(aName, aInterfaces, false); 
+       }
+       
+       public DefaultRequiredInterface(String aName, Class aInterface, boolean aIsOptional) {
+           this(aName, new Class[] { aInterface }, aIsOptional );
+       }
+
+       
+       public DefaultRequiredInterface(String aName, Class[] aInterfaces, boolean aIsOptional) {
                _name = aName; 
+               _optional = aIsOptional; 
                _required = aInterfaces; 
        }
 
@@ -37,6 +48,11 @@ public class DefaultRequiredInterface implements RequiredInterface {
                return _name;
        }
        
+       @Override
+       public boolean isOptional() {
+               return _optional; 
+       }
+       
        @Override
        public boolean implementedBy(ProvidedInterface aDescriptor) {
                Class[] provided = aDescriptor.getInterfaceTypes();
@@ -76,14 +92,6 @@ public class DefaultRequiredInterface implements RequiredInterface {
        public void setProvider(ProvidedInterface aProvider) {
                _provider = aProvider;  
        }
-
-       @Override
-       public <T> T getImplementation(Class<T> aClass) {
-               if ( _provider == null ) { 
-                       return null; 
-               }
-               return (T)_provider.getImplementation();
-       }
        
        @Override
        public boolean equals(Object obj) {