diff --git a/src/main/java/de/ph87/electro/circuit/Circuit.java b/src/main/java/de/ph87/electro/circuit/Circuit.java index 096d20d..ed8956e 100644 --- a/src/main/java/de/ph87/electro/circuit/Circuit.java +++ b/src/main/java/de/ph87/electro/circuit/Circuit.java @@ -42,7 +42,7 @@ public class Circuit { public Circuit(final CircuitDto dto) { created = dto.getCreated(); for (PartDto partDto : dto.getParts()) { - final Part part = Part.of(partDto); + final Part part = Part.of(this, partDto); verifyFree(part.getPosition()); parts.add(part); } @@ -56,7 +56,7 @@ public class Circuit { public void connect(final Junction a, final Junction b) { wires.add(new Wire(a, b)); - setDirty(); + evaluate(); } public void disconnect(final Wire wire) { @@ -66,7 +66,7 @@ public class Circuit { wires.remove(wire); wire.getA().getWires().remove(wire); wire.getB().getWires().remove(wire); - setDirty(); + evaluate(); } public T addPart(final T part) { @@ -76,7 +76,7 @@ public class Circuit { verifyFree(part.getPosition()); parts.add(part); part.render(); - setDirty(); + evaluate(); return part; } @@ -86,15 +86,11 @@ public class Circuit { } verifyFree(position); part.setPosition(position); - setDirty(); - } - - private void setDirty() { - evaluate(); dirty = true; } public void evaluate() { + dirty = true; Calculation.calculate(this); parts.forEach(Part::render); } diff --git a/src/main/java/de/ph87/electro/circuit/CircuitIOService.java b/src/main/java/de/ph87/electro/circuit/CircuitIOService.java index 27d0022..1460a42 100644 --- a/src/main/java/de/ph87/electro/circuit/CircuitIOService.java +++ b/src/main/java/de/ph87/electro/circuit/CircuitIOService.java @@ -8,7 +8,7 @@ import java.io.OutputStream; public class CircuitIOService { - private static final ObjectMapper objectMapper = new ObjectMapper(); + private static final ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules(); public static void write(final Circuit circuit, final OutputStream stream) throws IOException { objectMapper.writeValue(stream, new CircuitDto(circuit)); diff --git a/src/main/java/de/ph87/electro/circuit/CircuitPanel.java b/src/main/java/de/ph87/electro/circuit/CircuitPanel.java index 3e6f83c..588d31b 100644 --- a/src/main/java/de/ph87/electro/circuit/CircuitPanel.java +++ b/src/main/java/de/ph87/electro/circuit/CircuitPanel.java @@ -20,9 +20,9 @@ public class CircuitPanel extends JPanel { public CircuitPanel() { new CircuitPanelDropTarget(this, circuit); - final Battery battery = circuit.addPart(new Battery(RST(2, 0))); - final Light light = circuit.addPart(new Light(RST(0, 2))); - final Poti poti = circuit.addPart(new Poti(RST(2, 2))); + final Battery battery = circuit.addPart(new Battery(circuit, RST(2, 0))); + final Light light = circuit.addPart(new Light(circuit, RST(0, 2))); + final Poti poti = circuit.addPart(new Poti(circuit, RST(2, 2))); poti.rotate(); poti.rotate(); light.rotate(); diff --git a/src/main/java/de/ph87/electro/circuit/CircuitPanelDropTarget.java b/src/main/java/de/ph87/electro/circuit/CircuitPanelDropTarget.java index 21a705f..0182a54 100644 --- a/src/main/java/de/ph87/electro/circuit/CircuitPanelDropTarget.java +++ b/src/main/java/de/ph87/electro/circuit/CircuitPanelDropTarget.java @@ -23,23 +23,23 @@ public class CircuitPanelDropTarget extends AbstractDropTarget { protected boolean drop(final Point point, final String data) { final Position position = new Position(point); if (data.equals(Battery.class.getSimpleName())) { - circuit.addPart(new Battery(position)); + circuit.addPart(new Battery(circuit, position)); } else if (data.equals(ConnectorCorner.class.getSimpleName())) { - circuit.addPart(new ConnectorCorner(position)); + circuit.addPart(new ConnectorCorner(circuit, position)); } else if (data.equals(ConnectorEdge.class.getSimpleName())) { - circuit.addPart(new ConnectorEdge(position)); + circuit.addPart(new ConnectorEdge(circuit, position)); } else if (data.equals(ConnectorMiddle.class.getSimpleName())) { - circuit.addPart(new ConnectorMiddle(position)); + circuit.addPart(new ConnectorMiddle(circuit, position)); } else if (data.equals(Light.class.getSimpleName())) { - circuit.addPart(new Light(position)); + circuit.addPart(new Light(circuit, position)); } else if (data.equals(Switch1x1.class.getSimpleName())) { - circuit.addPart(new Switch1x1(position)); + circuit.addPart(new Switch1x1(circuit, position)); } else if (data.equals(Switch1x2.class.getSimpleName())) { - circuit.addPart(new Switch1x2(position)); + circuit.addPart(new Switch1x2(circuit, position)); } else if (data.equals(SwitchCross.class.getSimpleName())) { - circuit.addPart(new SwitchCross(position)); + circuit.addPart(new SwitchCross(circuit, position)); } else if (data.equals(Poti.class.getSimpleName())) { - circuit.addPart(new Poti(position)); + circuit.addPart(new Poti(circuit, position)); } else { throw new RuntimeException(); } diff --git a/src/main/java/de/ph87/electro/circuit/CircuitPanelMouseAdapter.java b/src/main/java/de/ph87/electro/circuit/CircuitPanelMouseAdapter.java index efc67c8..d518384 100644 --- a/src/main/java/de/ph87/electro/circuit/CircuitPanelMouseAdapter.java +++ b/src/main/java/de/ph87/electro/circuit/CircuitPanelMouseAdapter.java @@ -56,7 +56,6 @@ class CircuitPanelMouseAdapter extends MouseAdapter { switch (event.getButton()) { case BUTTON1: part.action(); - circuit.evaluate(); circuitPanel.repaint(); break; case BUTTON3: diff --git a/src/main/java/de/ph87/electro/circuit/part/Part.java b/src/main/java/de/ph87/electro/circuit/part/Part.java index 09931e6..845672b 100644 --- a/src/main/java/de/ph87/electro/circuit/part/Part.java +++ b/src/main/java/de/ph87/electro/circuit/part/Part.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.junction.Junction; import de.ph87.electro.circuit.part.junction.JunctionDto; import de.ph87.electro.circuit.part.parts.*; @@ -15,32 +16,40 @@ import static de.ph87.electro.CONFIG.PART_BACKGROUND; import static de.ph87.electro.CONFIG.RASTER; import static de.ph87.electro.circuit.part.Position.ZERO; -@Getter @ToString(onlyExplicitlyIncluded = true) public abstract class Part { + private final Circuit circuit; + + @Getter @ToString.Include private final String uuid; + @Getter @Setter @ToString.Include private String name; + @Getter private Position position; + @Getter private Orientation orientation = Orientation.R0; + @Getter private final List junctions = new ArrayList<>(); protected final Render render = new Render(); - protected Part(final String name, final Position position) { + protected Part(final Circuit circuit, final String name, final Position position) { + this.circuit = circuit; this.uuid = UUID.randomUUID().toString(); this.name = name; setPosition(position); } - protected Part(final PartDto dto) { + protected Part(final Circuit circuit, final PartDto dto) { + this.circuit = circuit; this.uuid = dto.getUuid(); this.name = dto.getName(); this.orientation = dto.getOrientation(); @@ -96,7 +105,12 @@ public abstract class Part { return junctions.stream().filter(junction -> junction.intersects(position)).findFirst(); } - public void action() { + public final void action() { + _action(); + evaluate(); + } + + public void _action() { // may be overwritten } @@ -112,20 +126,26 @@ public abstract class Part { // may be overwritten } + protected void evaluate() { + if (circuit != null) { + circuit.evaluate(); + } + } + public List getInnerConnections() { return Collections.emptyList(); } - public static Part of(final PartDto abstractDto) { + public static Part of(final Circuit circuit, final PartDto abstractDto) { return switch (abstractDto) { - case final BatteryDto dto -> new Battery(dto); - case final ConnectorCornerDto dto -> new ConnectorCorner(dto); - case final ConnectorEdgeDto dto -> new ConnectorEdge(dto); - case final ConnectorMiddleDto dto -> new ConnectorMiddle(dto); - case final LightDto dto -> new Light(dto); - case final Switch1x1Dto dto -> new Switch1x1(dto); - case final Switch1x2Dto dto -> new Switch1x2(dto); - case final SwitchCrossDto dto -> new SwitchCross(dto); + case final BatteryDto dto -> new Battery(circuit, dto); + case final ConnectorCornerDto dto -> new ConnectorCorner(circuit, dto); + case final ConnectorEdgeDto dto -> new ConnectorEdge(circuit, dto); + case final ConnectorMiddleDto dto -> new ConnectorMiddle(circuit, dto); + case final LightDto dto -> new Light(circuit, dto); + case final Switch1x1Dto dto -> new Switch1x1(circuit, dto); + case final Switch1x2Dto dto -> new Switch1x2(circuit, dto); + case final SwitchCrossDto dto -> new SwitchCross(circuit, dto); case null, default -> throw new RuntimeException(); }; } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/Battery.java b/src/main/java/de/ph87/electro/circuit/part/parts/Battery.java index a18fd1f..0705872 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/Battery.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/Battery.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.Orientation; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; @@ -40,14 +41,14 @@ public class Battery extends Part { @ToString.Include private double resistance = 0.05; - public Battery(final Position position) { - super("Batterie", position); + public Battery(final Circuit circuit, final Position position) { + super(circuit, "Batterie", position); minus = addJunction("MINUS", P10, P50); plus = addJunction("PLUS", P90, P50); } - public Battery(final BatteryDto dto) { - super(dto); + public Battery(final Circuit circuit, final BatteryDto dto) { + super(circuit, dto); minus = addJunction(dto.getMinus(), P10, P50); plus = addJunction(dto.getPlus(), P90, P50); voltage = dto.getVoltage(); diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorCorner.java b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorCorner.java index 8388915..dc7821b 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorCorner.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorCorner.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; import de.ph87.electro.circuit.part.junction.Junction; @@ -17,14 +18,14 @@ public class ConnectorCorner extends Part { private final Junction j1; - public ConnectorCorner(final Position position) { - super("", position); + public ConnectorCorner(final Circuit circuit, final Position position) { + super(circuit, "", position); j0 = addJunction("J0", P10, P10); j1 = addJunction("J1", P90, P90); } - public ConnectorCorner(final ConnectorCornerDto dto) { - super(dto); + public ConnectorCorner(final Circuit circuit, final ConnectorCornerDto dto) { + super(circuit, dto); j0 = addJunction(dto.getJ0(), P10, P10); j1 = addJunction(dto.getJ1(), P90, P90); } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorEdge.java b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorEdge.java index c4b7cb6..8dc7b4d 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorEdge.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorEdge.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; import de.ph87.electro.circuit.part.junction.Junction; @@ -17,14 +18,14 @@ public class ConnectorEdge extends Part { private final Junction j1; - public ConnectorEdge(final Position position) { - super("", position); + public ConnectorEdge(final Circuit circuit, final Position position) { + super(circuit, "", position); j0 = addJunction("J0", P10, P50); j1 = addJunction("J1", P50, P10); } - public ConnectorEdge(final ConnectorEdgeDto dto) { - super(dto); + public ConnectorEdge(final Circuit circuit, final ConnectorEdgeDto dto) { + super(circuit, dto); j0 = addJunction(dto.getJ0(), P10, P50); j1 = addJunction(dto.getJ1(), P50, P10); } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorMiddle.java b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorMiddle.java index 31e9e8c..6c33d03 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorMiddle.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/ConnectorMiddle.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; import de.ph87.electro.circuit.part.junction.Junction; @@ -14,13 +15,13 @@ public class ConnectorMiddle extends Part { private final Junction junction; - public ConnectorMiddle(final Position position) { - super("", position); + public ConnectorMiddle(final Circuit circuit, final Position position) { + super(circuit, "", position); junction = addJunction("J", P50, P50); } - public ConnectorMiddle(final ConnectorMiddleDto dto) { - super(dto); + public ConnectorMiddle(final Circuit circuit, final ConnectorMiddleDto dto) { + super(circuit, dto); junction = addJunction(dto.getJunction(), P50, P50); } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/Light.java b/src/main/java/de/ph87/electro/circuit/part/parts/Light.java index f7a5e4c..37cc643 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/Light.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/Light.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.InnerConnection; import de.ph87.electro.circuit.part.Orientation; import de.ph87.electro.circuit.part.Part; @@ -51,14 +52,14 @@ public class Light extends Part { private Color color = BULB_OFF_COLOR; - public Light(final Position position) { - super("Licht", position); + public Light(final Circuit circuit, final Position position) { + super(circuit, "Licht", position); a = addJunction("A", P10, P50); b = addJunction("B", P90, P50); } - public Light(final LightDto dto) { - super(dto); + public Light(final Circuit circuit, final LightDto dto) { + super(circuit, dto); a = addJunction(dto.getB(), P10, P50); b = addJunction(dto.getA(), P90, P50); resistance = dto.getResistance(); @@ -67,7 +68,7 @@ public class Light extends Part { } @Override - public void action() { + public void _action() { defect = false; } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/Poti.java b/src/main/java/de/ph87/electro/circuit/part/parts/Poti.java index e614067..3978355 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/Poti.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/Poti.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.InnerConnection; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; @@ -28,25 +29,29 @@ public class Poti extends Part { @Setter private double resistance = 10; - @Setter private double ratio = 0.0; - public Poti(final Position position) { - super("Poti", position); + public Poti(final Circuit circuit, final Position position) { + super(circuit, "Poti", position); common = addJunction("C", P10, P50); middle = addJunction("M", P50, P10); end = addJunction("E", P90, P50); } - protected Poti(final PotiDto dto) { - super(dto); + protected Poti(final Circuit circuit, final PotiDto dto) { + super(circuit, dto); common = addJunction(dto.getCommon().getName(), P10, P50); middle = addJunction(dto.getMiddle().getName(), P50, P10); end = addJunction(dto.getEnd().getName(), P90, P50); } + public void setRatio(final double ratio) { + this.ratio = ratio; + evaluate(); + } + @Override - public void action() { + public void _action() { if (ratio > 0.95) { ratio = 0; } else { diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x1.java b/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x1.java index ab21eb3..6c3895d 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x1.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x1.java @@ -1,11 +1,11 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.InnerConnection; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; import de.ph87.electro.circuit.part.junction.Junction; import lombok.Getter; -import lombok.Setter; import lombok.ToString; import java.awt.*; @@ -22,24 +22,28 @@ public class Switch1x1 extends Part { private final Junction output; - @Setter private boolean state = false; - public Switch1x1(final Position position) { - super("Ausschalter", position); + public Switch1x1(final Circuit circuit, final Position position) { + super(circuit, "Ausschalter", position); common = addJunction("C", P10, P50); output = addJunction("O", P90, P50); } - public Switch1x1(final Switch1x1Dto dto) { - super(dto); + public Switch1x1(final Circuit circuit, final Switch1x1Dto dto) { + super(circuit, dto); common = addJunction(dto.getCommon(), P10, P50); output = addJunction(dto.getOutput(), P90, P50); state = dto.isState(); } + public void setState(final boolean state) { + this.state = state; + evaluate(); + } + @Override - public void action() { + public void _action() { state = !state; } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x2.java b/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x2.java index 1f8d9a2..d623cd7 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x2.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/Switch1x2.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.InnerConnection; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; @@ -23,26 +24,30 @@ public class Switch1x2 extends Part { private final Junction output1; - @Setter private boolean state = false; - public Switch1x2(final Position position) { - super("Wechselschalter", position); + public Switch1x2(final Circuit circuit, final Position position) { + super(circuit, "Wechselschalter", position); common = addJunction("C", P10, P50); output0 = addJunction("O0", P90, P25); output1 = addJunction("O1", P90, P75); } - public Switch1x2(final Switch1x2Dto dto) { - super(dto); + public Switch1x2(final Circuit circuit, final Switch1x2Dto dto) { + super(circuit, dto); common = addJunction(dto.getCommon(), P10, P50); output0 = addJunction(dto.getOutput0(), P90, P25); output1 = addJunction(dto.getOutput1(), P90, P75); state = dto.isState(); } + public void setState(final boolean state) { + this.state = state; + evaluate(); + } + @Override - public void action() { + public void _action() { state = !state; } diff --git a/src/main/java/de/ph87/electro/circuit/part/parts/SwitchCross.java b/src/main/java/de/ph87/electro/circuit/part/parts/SwitchCross.java index 551396a..a6d5672 100644 --- a/src/main/java/de/ph87/electro/circuit/part/parts/SwitchCross.java +++ b/src/main/java/de/ph87/electro/circuit/part/parts/SwitchCross.java @@ -1,5 +1,6 @@ package de.ph87.electro.circuit.part.parts; +import de.ph87.electro.circuit.Circuit; import de.ph87.electro.circuit.part.InnerConnection; import de.ph87.electro.circuit.part.Part; import de.ph87.electro.circuit.part.Position; @@ -25,19 +26,18 @@ public class SwitchCross extends Part { private final Junction output1; - @Setter private boolean state = false; - public SwitchCross(final Position position) { - super("Kreuzschalter", position); + public SwitchCross(final Circuit circuit, final Position position) { + super(circuit, "Kreuzschalter", position); common0 = addJunction("C0", P10, P25); common1 = addJunction("C1", P10, P75); output0 = addJunction("O0", P90, P25); output1 = addJunction("O1", P90, P75); } - public SwitchCross(final SwitchCrossDto dto) { - super(dto); + public SwitchCross(final Circuit circuit, final SwitchCrossDto dto) { + super(circuit, dto); common0 = addJunction(dto.getCommon0(), P10, P25); common1 = addJunction(dto.getCommon1(), P10, P75); output0 = addJunction(dto.getOutput0(), P90, P25); @@ -45,8 +45,13 @@ public class SwitchCross extends Part { state = dto.isState(); } + public void setState(final boolean state) { + this.state = state; + evaluate(); + } + @Override - public void action() { + public void _action() { state = !state; } diff --git a/src/main/java/de/ph87/electro/sidebar/Sidebar.java b/src/main/java/de/ph87/electro/sidebar/Sidebar.java index c7a7710..1c6bcb1 100644 --- a/src/main/java/de/ph87/electro/sidebar/Sidebar.java +++ b/src/main/java/de/ph87/electro/sidebar/Sidebar.java @@ -28,15 +28,15 @@ public class Sidebar extends JPanel { }); add(toggleDetails); - add(new Battery(Position.ZERO)); - add(new ConnectorCorner(Position.ZERO)); - add(new ConnectorEdge(Position.ZERO)); - add(new ConnectorMiddle(Position.ZERO)); - add(new Light(Position.ZERO)); - add(new Switch1x1(Position.ZERO)); - add(new Switch1x2(Position.ZERO)); - add(new SwitchCross(Position.ZERO)); - add(new Poti(Position.ZERO)); + add(new Battery(null, Position.ZERO)); + add(new ConnectorCorner(null, Position.ZERO)); + add(new ConnectorEdge(null, Position.ZERO)); + add(new ConnectorMiddle(null, Position.ZERO)); + add(new Light(null, Position.ZERO)); + add(new Switch1x1(null, Position.ZERO)); + add(new Switch1x2(null, Position.ZERO)); + add(new SwitchCross(null, Position.ZERO)); + add(new Poti(null, Position.ZERO)); setPreferredSize(new Dimension(0, 200)); } diff --git a/src/test/java/de/ph87/electro/circuit/CalculationServiceTest.java b/src/test/java/de/ph87/electro/circuit/CalculationServiceTest.java index 05fdbcd..1302ac8 100644 --- a/src/test/java/de/ph87/electro/circuit/CalculationServiceTest.java +++ b/src/test/java/de/ph87/electro/circuit/CalculationServiceTest.java @@ -16,8 +16,8 @@ class CalculationServiceTest { @Test void test() { final Circuit circuit = new Circuit(); - final Battery battery = circuit.addPart(new Battery(RST(0, 0))); - final Light light = circuit.addPart(new Light(RST(0, 1))); + final Battery battery = circuit.addPart(new Battery(circuit, RST(0, 0))); + final Light light = circuit.addPart(new Light(circuit, RST(0, 1))); circuit.connect(battery.getMinus(), light.getA()); circuit.connect(battery.getPlus(), light.getB()); diff --git a/src/test/java/de/ph87/electro/circuit/io/CircuitIOServiceTest.java b/src/test/java/de/ph87/electro/circuit/io/CircuitIOServiceTest.java index 6188632..ce310a1 100644 --- a/src/test/java/de/ph87/electro/circuit/io/CircuitIOServiceTest.java +++ b/src/test/java/de/ph87/electro/circuit/io/CircuitIOServiceTest.java @@ -22,8 +22,8 @@ class CircuitIOServiceTest { @Test void serialization() throws IOException { final Circuit circuit = new Circuit(); - final Battery battery = circuit.addPart(new Battery(RST(0, 0))); - final Light light = circuit.addPart(new Light(RST(0, 1))); + final Battery battery = circuit.addPart(new Battery(circuit, RST(0, 0))); + final Light light = circuit.addPart(new Light(circuit, RST(0, 1))); circuit.connect(battery.getPlus(), light.getB()); circuit.connect(light.getA(), battery.getMinus()); check(circuit); diff --git a/src/test/java/de/ph87/electro/circuit/part/parts/BatteryLightTest.java b/src/test/java/de/ph87/electro/circuit/part/parts/BatteryLightTest.java index 8ddcaa2..af13e95 100644 --- a/src/test/java/de/ph87/electro/circuit/part/parts/BatteryLightTest.java +++ b/src/test/java/de/ph87/electro/circuit/part/parts/BatteryLightTest.java @@ -14,9 +14,9 @@ public class BatteryLightTest { private static final Circuit CIRCUIT = new Circuit(); - private static final Battery battery = CIRCUIT.addPart(new Battery(RST(0, 0))); + private static final Battery battery = CIRCUIT.addPart(new Battery(CIRCUIT, RST(0, 0))); - private static final Light light = CIRCUIT.addPart(new Light(RST(0, 1))); + private static final Light light = CIRCUIT.addPart(new Light(CIRCUIT, RST(0, 1))); @BeforeAll public static void setUp() { diff --git a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x1Test.java b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x1Test.java index 05059e7..3d71d20 100644 --- a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x1Test.java +++ b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x1Test.java @@ -15,11 +15,11 @@ public class BatterySwitcher1x1Test { private static final Circuit CIRCUIT = new Circuit(); - private static final Battery battery = CIRCUIT.addPart(new Battery(RST(0, 0))); + private static final Battery battery = CIRCUIT.addPart(new Battery(CIRCUIT, RST(0, 0))); - private static final Switch1x1 switcher = CIRCUIT.addPart(new Switch1x1(RST(0, 1))); + private static final Switch1x1 switcher = CIRCUIT.addPart(new Switch1x1(CIRCUIT, RST(0, 1))); - private static final Light light = CIRCUIT.addPart(new Light(RST(1, 0))); + private static final Light light = CIRCUIT.addPart(new Light(CIRCUIT, RST(1, 0))); @BeforeAll public static void setUp() { diff --git a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x2Test.java b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x2Test.java index 163406e..921bd41 100644 --- a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x2Test.java +++ b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher1x2Test.java @@ -15,13 +15,13 @@ public class BatterySwitcher1x2Test { private static final Circuit CIRCUIT = new Circuit(); - private static final Battery battery = CIRCUIT.addPart(new Battery(RST(0, 0))); + private static final Battery battery = CIRCUIT.addPart(new Battery(CIRCUIT, RST(0, 0))); - private static final Switch1x2 switcher = CIRCUIT.addPart(new Switch1x2(RST(0, 2))); + private static final Switch1x2 switcher = CIRCUIT.addPart(new Switch1x2(CIRCUIT, RST(0, 2))); - private static final Light light0 = CIRCUIT.addPart(new Light(RST(1, 1))); + private static final Light light0 = CIRCUIT.addPart(new Light(CIRCUIT, RST(1, 1))); - private static final Light light1 = CIRCUIT.addPart(new Light(RST(1, 3))); + private static final Light light1 = CIRCUIT.addPart(new Light(CIRCUIT, RST(1, 3))); @BeforeAll public static void setUp() { diff --git a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher2x2Test.java b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher2x2Test.java index fedf1b7..03b7a75 100644 --- a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher2x2Test.java +++ b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcher2x2Test.java @@ -15,13 +15,13 @@ public class BatterySwitcher2x2Test { private static final Circuit CIRCUIT = new Circuit(); - private static final Battery battery = CIRCUIT.addPart(new Battery(RST(0, 0))); + private static final Battery battery = CIRCUIT.addPart(new Battery(CIRCUIT, RST(0, 0))); - private static final Switch1x2 switcher0 = CIRCUIT.addPart(new Switch1x2(RST(0, 1))); + private static final Switch1x2 switcher0 = CIRCUIT.addPart(new Switch1x2(CIRCUIT, RST(0, 1))); - private static final Switch1x2 switcher1 = CIRCUIT.addPart(new Switch1x2(RST(1, 1))); + private static final Switch1x2 switcher1 = CIRCUIT.addPart(new Switch1x2(CIRCUIT, RST(1, 1))); - private static final Light light = CIRCUIT.addPart(new Light(RST(1, 0))); + private static final Light light = CIRCUIT.addPart(new Light(CIRCUIT, RST(1, 0))); @BeforeAll public static void setUp() { diff --git a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcherCrossTest.java b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcherCrossTest.java index 8b6dd24..2e814f0 100644 --- a/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcherCrossTest.java +++ b/src/test/java/de/ph87/electro/circuit/part/parts/BatterySwitcherCrossTest.java @@ -15,15 +15,15 @@ public class BatterySwitcherCrossTest { private static final Circuit CIRCUIT = new Circuit(); - private static final Battery battery = CIRCUIT.addPart(new Battery(RST(0, 0))); + private static final Battery battery = CIRCUIT.addPart(new Battery(CIRCUIT, RST(0, 0))); - private static final Switch1x2 switcher0 = CIRCUIT.addPart(new Switch1x2(RST(0, 1))); + private static final Switch1x2 switcher0 = CIRCUIT.addPart(new Switch1x2(CIRCUIT, RST(0, 1))); - private static final SwitchCross switcherX = CIRCUIT.addPart(new SwitchCross(RST(1, 1))); + private static final SwitchCross switcherX = CIRCUIT.addPart(new SwitchCross(CIRCUIT, RST(1, 1))); - private static final Switch1x2 switcher1 = CIRCUIT.addPart(new Switch1x2(RST(2, 1))); + private static final Switch1x2 switcher1 = CIRCUIT.addPart(new Switch1x2(CIRCUIT, RST(2, 1))); - private static final Light light = CIRCUIT.addPart(new Light(RST(2, 0))); + private static final Light light = CIRCUIT.addPart(new Light(CIRCUIT, RST(2, 0))); @BeforeAll public static void setUp() {