* @return
*/
boolean implementedBy(ProvidedInterface aInterface);
+
+ /**
+ * Sets the provider of this interface.
+ * @param aProvider Provider.
+ */
+ void setProvider(ProvidedInterface aProvider);
+
+ /**
+ * Getst the provider interface.
+ * @return Provider or null if not set.
+ */
+ ProvidedInterface getProvider();
+
+ /**
+ * Gets the implementation of the required interface.
+ * @param <T>
+ * @param aClass Interface type.
+ * @return Interface implementation or null if not known yet.
+ */
+ <T> T getImplementation(Class<T> aClass);
}