Implemented optinality of interfaces.
[utils] / system / general / src / main / java / org / wamblee / system / core / DefaultRequiredInterface.java
index 32276a25cc26d7237e479f379b5b94309773e3ae..e028342e9d2fa98528ec04e7ccc2dfd90ce59e39 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();