[maven-release-plugin] copy for tag wamblee-utils-0.2
[utils] / system / general / src / main / java / org / wamblee / system / core / RequiredInterface.java
index bcd2635d6cdc6e19742edd2789d9a0c6dcbd0d7b..4dd77fc7dad510dcbc062eaab20a402008de627f 100644 (file)
  */ 
 package org.wamblee.system.core;
 
-public interface RequiredInterface {
-
-       /**
-        * Name for the interface. 
-        */
-       String getName();
+public interface RequiredInterface extends NamedInterface {
        
        /**
         * @return True iff the required interface is optional. 
@@ -45,13 +40,11 @@ public interface RequiredInterface {
         * Gets the provider interface. 
         * @return Provider or null if not set. 
         */
-       ProvidedInterface getProvider(); 
+       ProvidedInterface getProvider();
        
        /**
-        * Gets the implementation of the required interface. 
-        * @param <T>
-        * @param aClass Interface type. 
-        * @return Interface implementation or null if not known yet. 
+        * Determines if the requirements of the current interface are at least those
+        * of the given required interface. 
         */
-       <T> T getImplementation(Class<T> aClass); 
+       boolean covers(RequiredInterface aInterface); 
 }