+
+ addAtomicHighLevelStateID("q");
+ }
+
+ @Override
+ public void setAtomicHighLevelState(String stateID, Object newState)
+ {
+ switch (stateID)
+ {
+ case "q":
+ _rsLatch.setHighLevelState("q", newState);
+ break;
+ default:
+ // should not happen because we tell SubmodelComponent to only allow these state IDs.
+ throw new IllegalStateException("Illegal atomic state ID: " + stateID);
+ }
+ }
+
+ @Override
+ public Object getAtomicHighLevelState(String stateID)
+ {
+ switch (stateID)
+ {
+ case "q":
+ return _rsLatch.getHighLevelState("q");
+ default:
+ // should not happen because we tell SubmodelComponent to only allow these state IDs.
+ throw new IllegalStateException("Illegal atomic state ID: " + stateID);
+ }
+ }
+
+ static
+ {
+ IndirectGUIComponentCreator.setComponentProvider(GUIdlatch.class.getCanonicalName(), (m, p) -> new GUIdlatch(m));