X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FRequiredInterface.java;h=74c132e02aa7532cde7ec98e982b5be58c82573f;hb=ad6e06e3c1ba0c4ae0dea100596b1c5503bfe1c6;hp=ce8d084cdbaa2b11fcd25c65c7c194a871f64b1a;hpb=bb66d188e89338f718e7446bb91d8182cd2203fe;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java b/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java index ce8d084c..74c132e0 100644 --- a/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java +++ b/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java @@ -20,7 +20,13 @@ public interface RequiredInterface { /** * Name for the interface. */ - public String getName(); + String getName(); + + /** + * @return True iff the required interface is optional. + */ + boolean isOptional(); + /** * Checks if the service is provided by a given provided interface. @@ -39,13 +45,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 - * @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 getImplementation(Class aClass); + boolean covers(RequiredInterface aInterface); }