- /**
- * Publishes an implementation of the interface. The implementation must
- * call {@link Scope#publishInterface(ProvidedInterface, Object)} to publish the
- * interface implementation in a given scope.
- * @param aImplementation Implementation to publish.
- * @param aScope Scope in which to publish the implementation.
- */
- void publish(Object aImplementation, Scope aScope);
+ /**
+ * Determines whether the current provided interface exceeds the
+ * given provided interface. In other words if it can provide at least
+ * what the given provided interface can provide.
+ *
+ * @param aInterface Interface to compare to.
+ *
+ * @return True if the current interface exceeds the given provided
+ * interface.
+ */
+ boolean covers(ProvidedInterface aInterface);