X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2FModelComponent.java;h=b4d89282ceeb605a90f57e45ee2225877352fd3e;hb=69ec19d54ceb6d5abbb8b4faa55284af22174859;hp=d543c543ebc2050f044e8cd309e6b07a36f98e1a;hpb=58babf45ae7d259a296656451d796dbe601377a4;p=Mograsim.git
diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java
index d543c543..b4d89282 100644
--- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java
+++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java
@@ -14,6 +14,7 @@ import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.serializing.IdentifyParams;
import net.mograsim.logic.model.serializing.JSONSerializable;
import net.mograsim.logic.model.snippets.HighLevelStateHandler;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler;
/**
* The base class for all model components.
@@ -77,6 +78,8 @@ public abstract class ModelComponent implements JSONSerializable
this.pinAddedListeners = new ArrayList<>();
this.pinRemovedListeners = new ArrayList<>();
+ this.highLevelStateHandler = new DefaultHighLevelStateHandler();
+
if (callInit)
init();
}
@@ -212,13 +215,13 @@ public abstract class ModelComponent implements JSONSerializable
* See {@link HighLevelStateHandler} for an explanation of high-level state IDs.
*
* @see #setHighLevelState(String, Object)
- * @see HighLevelStateHandler#getHighLevelState(String)
+ * @see HighLevelStateHandler#get(String)
*
* @author Daniel Kirschten
*/
- public Object getHighLevelState(String stateID)
+ public final Object getHighLevelState(String stateID)
{
- return highLevelStateHandler.getHighLevelState(stateID);
+ return highLevelStateHandler.get(stateID);
}
/**
@@ -226,13 +229,23 @@ public abstract class ModelComponent implements JSONSerializable
* See {@link HighLevelStateHandler} for an explanation of high-level state IDs.
*
* @see #getHighLevelState(String)
- * @see HighLevelStateHandler#setHighLevelState(String, Object)
+ * @see HighLevelStateHandler#set(String, Object)
*
* @author Daniel Kirschten
*/
- public void setHighLevelState(String stateID, Object newState)
+ public final void setHighLevelState(String stateID, Object newState)
+ {
+ highLevelStateHandler.set(stateID, newState);
+ }
+
+ public final void addHighLevelStateListener(String stateID, Consumer