public interface Controlled {
/**
+ * Returns the name of this controlled component.
+ *
+ * @return The name of this controlled component
+ */
+ public String name();
+
+ /**
+ * Returns the current metadata of this component.
+ *
+ * @return The current metadata of this component
+ */
+ public Metadata metadata();
+
+ /**
* Returns the controllers offered by this component.
*
* @return The controllers of this component
*/
- public List<Controller> controllers();
+ public List<Controller<?>> controllers();
}