projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Now using high level state handlers in mi.nandbased (except GUI_rslatch)
[Mograsim.git]
/
net.mograsim.logic.model.am2900
/
src
/
net
/
mograsim
/
logic
/
model
/
model
/
components
/
mi
/
nandbased
/
GUIdff.java
diff --git
a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java
b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java
index
b8a5c8a
..
1d67977
100644
(file)
--- a/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java
+++ b/
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/model/components/mi/nandbased/GUIdff.java
@@
-8,10
+8,12
@@
import net.mograsim.logic.model.model.wires.GUIWire;
import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.model.wires.WireCrossPoint;
import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.model.wires.WireCrossPoint;
import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler;
+import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler;
public class GUIdff extends SimpleRectangularSubmodelComponent
{
public class GUIdff extends SimpleRectangularSubmodelComponent
{
- private
GUI_rsLatch _rsLatch
;
+ private
StandardHighLevelStateHandler highLevelStateHandler
;
public GUIdff(ViewModelModifiable model)
{
public GUIdff(ViewModelModifiable model)
{
@@
-38,7
+40,7
@@
public class GUIdff extends SimpleRectangularSubmodelComponent
GUI_rsLatch _rsLatch1 = new GUI_rsLatch(submodelModifiable);
GUInand3 nand3 = new GUInand3(submodelModifiable);
GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
GUI_rsLatch _rsLatch1 = new GUI_rsLatch(submodelModifiable);
GUInand3 nand3 = new GUInand3(submodelModifiable);
GUINandGate nand2 = new GUINandGate(submodelModifiable, 1);
- GUI_rsLatch _rsLatch2 =
this._rsLatch =
new GUI_rsLatch(submodelModifiable);
+ GUI_rsLatch _rsLatch2 = new GUI_rsLatch(submodelModifiable);
WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
WireCrossPoint cp1 = new WireCrossPoint(submodelModifiable, 1);
WireCrossPoint cp2 = new WireCrossPoint(submodelModifiable, 1);
@@
-70,34
+72,20
@@
public class GUIdff extends SimpleRectangularSubmodelComponent
new GUIWire(submodelModifiable, _rsLatch2.getPin("Q"), Q);
new GUIWire(submodelModifiable, _rsLatch2.getPin("_Q"), _Q);
new GUIWire(submodelModifiable, _rsLatch2.getPin("Q"), Q);
new GUIWire(submodelModifiable, _rsLatch2.getPin("_Q"), _Q);
- addAtomicHighLevelStateID("q");
+ this.highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ highLevelStateHandler.addAtomicHighLevelState("q", DelegatingAtomicHighLevelStateHandler::new).set(_rsLatch2, "q");
}
@Override
}
@Override
- public
void setAtomicHighLevelState(String stateID, Object newState
)
+ public
Object getHighLevelState(String stateID
)
{
{
- 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);
- }
+ return highLevelStateHandler.getHighLevelState(stateID);
}
@Override
}
@Override
- public
Object getAtomicHighLevelState(String stateID
)
+ public
void setHighLevelState(String stateID, Object newState
)
{
{
- 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);
- }
+ highLevelStateHandler.setHighLevelState(stateID, newState);
}
static
}
static