*
* @author Erik Brakkee
*/
-public interface ProvidedInterface {
-
- /**
- * Symbolic name for the service as used by the subsystem.
- * @return Service name.
- */
- String getName();
+public interface ProvidedInterface extends NamedInterface {
/**
* Returns the service type.
* @return Service type.
*/
Class[] getInterfaceTypes();
-
- /**
- * Sets a unique id of the provided interface to identify it within a given scope.
- * Will be called by the container as part of calling {@link #publish(Object, Scope)}.
- * @param aId Unique id.
- */
- void setUniqueId(String aId);
-
- /**
- * Gets the unique if of the provided interface. This is set by the container
- * using {@link #setUniqueId(String)}.
- */
- String getUniqueId();
/**
* Publishes an implementation of the interface. The implementation must
* @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);
}