-public interface Component {
-
- enum Status {
- NOT_STARTED, RUNNING, STOPPED
- }
-
- /**
- * Gets the status of the component.
- * @return Status.
- */
- Status getStatus();
-
- /**
- * Gets the name of the subsystem.
- * @return Subsystem name.
- */
- String getName();
-
- /**
- * Prepends the context with a super context.
- */
- void addContext(String aContext);
-
- /**
- * Gets the fully qualified name of the component which includes
- * the context of the component.
- * This method can only be used after the component has started.
- * @return Qualified name.
- */
- String getQualifiedName();
+public interface Component<Type> {
+ /**
+ * Gets the name of the subsystem.
+ *
+ * @return Subsystem name.
+ */
+ String getName();
+
+ /**
+ * Prepends the context with a super context.
+ *
+ */
+ void addContext(String aContext);
+
+ /**
+ * Getst the context.
+ *
+ * @return Context or null if not set.
+ */
+ String getContext();
+
+ /**
+ * Gets the fully qualified name of the component which includes the context
+ * of the component. This method can only be used after the component has
+ * started.
+ *
+ * @return Qualified name.
+ */
+ String getQualifiedName();
+
+ /**
+ * Gets a description of the provided interfaces.
+ *
+ * @return Provided interfaces.
+ */
+ List<ProvidedInterface> getProvidedInterfaces();
+
+ /**
+ * Gets a description of the required interfaces.
+ *
+ * @return Required interfaces.
+ */
+ List<RequiredInterface> getRequiredInterfaces();