X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FModelAndGate.java;fp=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FModelAndGate.java;h=3707a783ee476db117b3fbd3b172e2ac9224e99e;hb=93b398d6271a538a2a4c9f4de07a3b4a8a2a7fd4;hp=0000000000000000000000000000000000000000;hpb=0a04a4ed66ecebd4254541c4977599f6052c115a;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java new file mode 100644 index 00000000..3707a783 --- /dev/null +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java @@ -0,0 +1,28 @@ +package net.mograsim.logic.model.model.components.atomic; + +import net.mograsim.logic.core.components.gates.CoreAndGate; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter; +import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter; +import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; + +public class ModelAndGate extends SimpleRectangularModelGate +{ + public ModelAndGate(ViewModelModifiable model, int logicWidth) + { + this(model, logicWidth, null); + } + + public ModelAndGate(ViewModelModifiable model, int logicWidth, String name) + { + super(model, "AndGate", "&", false, logicWidth, name); + setInputCount(2);// TODO make variable + } + + static + { + ViewLogicModelAdapter.addComponentAdapter(new SimpleGateAdapter<>(ModelAndGate.class, CoreAndGate::new)); + IndirectModelComponentCreator.setComponentSupplier(ModelAndGate.class.getCanonicalName(), + (m, p, n) -> new ModelAndGate(m, p.getAsInt(), n)); + } +} \ No newline at end of file