\r
import java.util.List;\r
\r
+/** Registry where the whole structure is stored. */\r
public interface StructureRegistry {\r
- public void register(StructureElement element);\r
- public void register(StructureAware structureAware);\r
+ /** Read mode: the structure is only read. */\r
+ public static String READ = "READ";\r
+ /** All mode: everything is executed regardless of the active paths. */\r
+ public static String ALL = "ALL";\r
+ /** Active mode: only the active paths are executed. */\r
+ public static String ACTIVE = "ACTIVE";\r
+\r
+ /** Adds an element to the registry. */\r
+ public void register(StructurePath path, StructureElement element);\r
+\r
+ /**\r
+ * Adds the wrapped element of a <code>SructureAware</code>, and\r
+ * propagates the registration.\r
+ */\r
+ public void register(StructurePath path, StructureAware structureAware);\r
+\r
+ /** Lists <b>all</b> registered elements. */\r
public List<StructureElement> listElements();\r
- \r
+\r
+ /** Lists <b>all</b> registered elements. */\r
+ public List<StructurePath> listPaths();\r
+\r
+ /** Gets a element based on its path. */\r
public StructureElement getElement(StructurePath path);\r
+\r
+ /**\r
+ * Set the interpreter mode: read, all or active.\r
+ * \r
+ * @see #READ\r
+ * @see #ALL\r
+ * @see #ACTIVE\r
+ */\r
+ public void setMode(String mode);\r
+\r
+ /**\r
+ * Gets the current interpreter mode.\r
+ * \r
+ * @see #READ\r
+ * @see #ALL\r
+ * @see #ACTIVE\r
+ */\r
+ public String getMode();\r
+\r
+ /**\r
+ * Gets the list of active paths, which will be run if executed in\r
+ * <code>ACTIVE</code> mode.\r
+ */\r
+ public List<StructurePath> getActivePaths();\r
+\r
+ /**\r
+ * Sets the list of active path, which will be run if executed in\r
+ * <code>ACTIVE</code> mode.\r
+ */\r
+ public void setActivePaths(List<StructurePath> activePaths);\r
}\r