reintroduced Wire for performance
This commit is contained in:
parent
3e7f0b5e73
commit
8a190cb755
@ -1,11 +1,12 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.Part;
|
import de.ph87.electro.circuit.part.Part;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.NonNull;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -23,14 +24,21 @@ public class Circuit {
|
|||||||
|
|
||||||
private final List<Part> parts = new ArrayList<>();
|
private final List<Part> parts = new ArrayList<>();
|
||||||
|
|
||||||
|
private final List<Wire> wires = new ArrayList<>();
|
||||||
|
|
||||||
public Circuit(final CircuitDto dto) {
|
public Circuit(final CircuitDto dto) {
|
||||||
final List<Junction> junctions = new ArrayList<>();
|
|
||||||
for (PartDto partDto : dto.getParts()) {
|
for (PartDto partDto : dto.getParts()) {
|
||||||
final Part part = Part.of(partDto);
|
final Part part = Part.of(partDto);
|
||||||
partAdd(part);
|
if (!isFree(part.getPosition())) {
|
||||||
junctions.addAll(part.getJunctions());
|
throw new RuntimeException();
|
||||||
|
}
|
||||||
|
parts.add(part);
|
||||||
|
}
|
||||||
|
for (final WireDto wire : dto.getWires()) {
|
||||||
|
final Junction a = findJunctionByUuid(wire.getA()).orElseThrow();
|
||||||
|
final Junction b = findJunctionByUuid(wire.getB()).orElseThrow();
|
||||||
|
wires.add(new Wire(a, b));
|
||||||
}
|
}
|
||||||
parts.forEach(part -> part.link(junctions));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PartBattery addBattery(final String name, final int x, final int y, final Orientation orientation, final double voltage) {
|
public PartBattery addBattery(final String name, final int x, final int y, final Orientation orientation, final double voltage) {
|
||||||
@ -64,8 +72,7 @@ public class Circuit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void connect(final Junction a, final Junction b) {
|
public void connect(final Junction a, final Junction b) {
|
||||||
a.getDestinations().add(b);
|
wires.add(new Wire(a, b));
|
||||||
b.getDestinations().add(a);
|
|
||||||
evaluateAndRender();
|
evaluateAndRender();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,18 +86,8 @@ public class Circuit {
|
|||||||
return parts.stream().filter(part -> part instanceof PartBattery).map(part -> (PartBattery) part);
|
return parts.stream().filter(part -> part instanceof PartBattery).map(part -> (PartBattery) part);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Wire> getWires() {
|
public Stream<Wire> streamWires() {
|
||||||
final List<Wire> wires = new ArrayList<>();
|
return wires.stream();
|
||||||
for (final Part part : parts) {
|
|
||||||
for (final Junction junction : part.getJunctions()) {
|
|
||||||
for (final Junction destination : junction.getDestinations()) {
|
|
||||||
if (wires.stream().noneMatch(wire -> wire.matches(junction, destination))) {
|
|
||||||
wires.add(new Wire(junction, destination));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return wires;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void partAdd(final Part part) {
|
public void partAdd(final Part part) {
|
||||||
@ -133,8 +130,22 @@ public class Circuit {
|
|||||||
return findPart(point).flatMap(part -> part.findJunction(point));
|
return findPart(point).flatMap(part -> part.findJunction(point));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<Junction> findJunctionByUuid(@NonNull final String junctionUuid) {
|
||||||
|
return parts.stream().map(part -> part.findJunctionByUuid(junctionUuid)).filter(Optional::isPresent).map(Optional::get).findFirst();
|
||||||
|
}
|
||||||
|
|
||||||
public Optional<Wire> findWireByPoint(final Point point) {
|
public Optional<Wire> findWireByPoint(final Point point) {
|
||||||
return getWires().stream().filter(wire -> wire.intersects(point)).findFirst();
|
return wires.stream().filter(wire -> wire.intersects(point)).findFirst();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeWire(final Wire wire) {
|
||||||
|
if (!wires.contains(wire)) {
|
||||||
|
throw new RuntimeException();
|
||||||
|
}
|
||||||
|
wires.remove(wire);
|
||||||
|
wire.getA().getWires().remove(wire);
|
||||||
|
wire.getB().getWires().remove(wire);
|
||||||
|
evaluateAndRender();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,8 +14,11 @@ public class CircuitDto {
|
|||||||
|
|
||||||
private List<PartDto> parts;
|
private List<PartDto> parts;
|
||||||
|
|
||||||
|
private List<WireDto> wires;
|
||||||
|
|
||||||
public CircuitDto(final Circuit circuit) {
|
public CircuitDto(final Circuit circuit) {
|
||||||
this.parts = circuit.streamParts().map(PartDto::of).toList();
|
this.parts = circuit.streamParts().map(PartDto::of).toList();
|
||||||
|
this.wires = circuit.streamWires().map(WireDto::new).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,14 +51,14 @@ public class CircuitPanel extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void drawWires(final Graphics2D g) {
|
private void drawWires(final Graphics2D g) {
|
||||||
for (final Wire wire : circuit.getWires()) {
|
circuit.streamWires().forEach(wire -> {
|
||||||
final Point a = wire.getA().getAbsolute();
|
final Point a = wire.getA().getAbsolute();
|
||||||
final Point b = wire.getB().getAbsolute();
|
final Point b = wire.getB().getAbsolute();
|
||||||
|
|
||||||
g.setColor(wire.getA().getColor());
|
g.setColor(wire.getA().getColor());
|
||||||
g.setStroke(WIRE_STROKE);
|
g.setStroke(WIRE_STROKE);
|
||||||
g.drawLine(a.x, a.y, b.x, b.y);
|
g.drawLine(a.x, a.y, b.x, b.y);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Part;
|
import de.ph87.electro.circuit.part.Part;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
import de.ph87.electro.common.AbstractDropTarget;
|
import de.ph87.electro.common.AbstractDropTarget;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|||||||
@ -45,10 +45,7 @@ class CircuitPanelMouseAdapter extends MouseAdapter {
|
|||||||
if (e.getButton() == BUTTON3) {
|
if (e.getButton() == BUTTON3) {
|
||||||
final Optional<Wire> wireOptional = circuit.findWireByPoint(e.getPoint());
|
final Optional<Wire> wireOptional = circuit.findWireByPoint(e.getPoint());
|
||||||
if (wireOptional.isPresent()) {
|
if (wireOptional.isPresent()) {
|
||||||
final Wire wire = wireOptional.get();
|
circuit.removeWire(wireOptional.get());
|
||||||
wire.getA().getDestinations().remove(wire.getB());
|
|
||||||
wire.getB().getDestinations().remove(wire.getA());
|
|
||||||
circuit.evaluateAndRender();
|
|
||||||
circuitPanel.repaint();
|
circuitPanel.repaint();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package de.ph87.electro.circuit;
|
|||||||
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NonNull;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
@ -10,17 +11,17 @@ import static de.ph87.electro.CONFIG.WIRE_STROKE_BACK2;
|
|||||||
@Data
|
@Data
|
||||||
public class Wire {
|
public class Wire {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private final Junction a;
|
private final Junction a;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private final Junction b;
|
private final Junction b;
|
||||||
|
|
||||||
public Wire(final Junction a, final Junction b) {
|
public Wire(@NonNull final Junction a, @NonNull final Junction b) {
|
||||||
this.a = a;
|
this.a = a;
|
||||||
this.b = b;
|
this.b = b;
|
||||||
}
|
a.getWires().add(this);
|
||||||
|
b.getWires().add(this);
|
||||||
public boolean matches(final Junction x, final Junction y) {
|
|
||||||
return (a == x && b == y) || (a == y && b == x);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean intersects(final Point p) {
|
public boolean intersects(final Point p) {
|
||||||
@ -40,4 +41,13 @@ public class Wire {
|
|||||||
return p.distance(closestX, closestY) <= WIRE_STROKE_BACK2.getLineWidth();
|
return p.distance(closestX, closestY) <= WIRE_STROKE_BACK2.getLineWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Junction getOpposite(final Junction junction) {
|
||||||
|
if (a == junction) {
|
||||||
|
return b;
|
||||||
|
} else if (b == junction) {
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
throw new RuntimeException();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
22
src/main/java/de/ph87/electro/circuit/WireDto.java
Normal file
22
src/main/java/de/ph87/electro/circuit/WireDto.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@ToString
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class WireDto {
|
||||||
|
|
||||||
|
private String a;
|
||||||
|
|
||||||
|
private String b;
|
||||||
|
|
||||||
|
public WireDto(@NonNull final Wire wire) {
|
||||||
|
this.a = wire.getA().getUuid();
|
||||||
|
this.b = wire.getB().getUuid();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package de.ph87.electro.circuit.part;
|
package de.ph87.electro.circuit.part;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
|
import de.ph87.electro.circuit.Wire;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
@ -17,8 +18,6 @@ import static de.ph87.electro.CONFIG.*;
|
|||||||
@ToString(onlyExplicitlyIncluded = true)
|
@ToString(onlyExplicitlyIncluded = true)
|
||||||
public class Junction {
|
public class Junction {
|
||||||
|
|
||||||
private final JunctionDto _dto;
|
|
||||||
|
|
||||||
@ToString.Include
|
@ToString.Include
|
||||||
private final String uuid;
|
private final String uuid;
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ public class Junction {
|
|||||||
|
|
||||||
private final Point position;
|
private final Point position;
|
||||||
|
|
||||||
private final Set<Junction> destinations = new HashSet<>();
|
private final Set<Wire> wires = new HashSet<>();
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
@ToString.Include
|
@ToString.Include
|
||||||
@ -40,7 +39,7 @@ public class Junction {
|
|||||||
@ToString.Include
|
@ToString.Include
|
||||||
@SuppressWarnings("unused") // lombok toString
|
@SuppressWarnings("unused") // lombok toString
|
||||||
public List<String> destinations() {
|
public List<String> destinations() {
|
||||||
return destinations.stream().map(Junction::getUuid).toList();
|
return wires.stream().map(wire -> wire.getOpposite(this)).map(Junction::getUuid).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Junction(final Part owner, final String name, final Point position) {
|
public Junction(final Part owner, final String name, final Point position) {
|
||||||
@ -48,7 +47,6 @@ public class Junction {
|
|||||||
this.uuid = UUID.randomUUID().toString();
|
this.uuid = UUID.randomUUID().toString();
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.position = position;
|
this.position = position;
|
||||||
this._dto = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Junction(final Part owner, final JunctionDto dto, final Point position) {
|
public Junction(final Part owner, final JunctionDto dto, final Point position) {
|
||||||
@ -56,15 +54,6 @@ public class Junction {
|
|||||||
this.uuid = dto.getUuid();
|
this.uuid = dto.getUuid();
|
||||||
this.name = dto.getName();
|
this.name = dto.getName();
|
||||||
this.position = position;
|
this.position = position;
|
||||||
this._dto = dto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void link(final List<Junction> junctions) {
|
|
||||||
for (final String otherUuid : _dto.getDestinations()) {
|
|
||||||
final Junction other = junctions.stream().filter(junction -> junction.getUuid().equals(otherUuid)).findFirst().orElseThrow();
|
|
||||||
destinations.add(other);
|
|
||||||
other.destinations.add(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reset() {
|
public void reset() {
|
||||||
@ -86,8 +75,8 @@ public class Junction {
|
|||||||
color = VOLTAGE_LOW_COLOR;
|
color = VOLTAGE_LOW_COLOR;
|
||||||
}
|
}
|
||||||
owner.propagate(this);
|
owner.propagate(this);
|
||||||
for (Junction junction : destinations) {
|
for (Wire wire : wires) {
|
||||||
junction.propagate(newVoltage);
|
wire.getOpposite(this).propagate(newVoltage);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,6 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@ToString
|
@ToString
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ -15,12 +13,9 @@ public class JunctionDto {
|
|||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private List<String> destinations;
|
|
||||||
|
|
||||||
public JunctionDto(final Junction junction) {
|
public JunctionDto(final Junction junction) {
|
||||||
this.uuid = junction.getUuid();
|
this.uuid = junction.getUuid();
|
||||||
this.name = junction.getName();
|
this.name = junction.getName();
|
||||||
this.destinations = junction.getDestinations().stream().map(Junction::getUuid).toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package de.ph87.electro.circuit.part;
|
package de.ph87.electro.circuit.part;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
@ -51,10 +51,6 @@ public abstract class Part {
|
|||||||
this.orientation = dto.getOrientation();
|
this.orientation = dto.getOrientation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void link(final List<Junction> junctions) {
|
|
||||||
junctions.forEach(junction -> junction.link(junctions));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Junction newJunction(final Part owner, final String name, final int x, final int y) {
|
protected Junction newJunction(final Part owner, final String name, final int x, final int y) {
|
||||||
return addJunction(new Junction(owner, name, new Point(x, y)));
|
return addJunction(new Junction(owner, name, new Point(x, y)));
|
||||||
}
|
}
|
||||||
@ -201,4 +197,8 @@ public abstract class Part {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<Junction> findJunctionByUuid(final String junctionUuid) {
|
||||||
|
return junctions.stream().filter(junction -> junction.getUuid().equals(junctionUuid)).findFirst();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package de.ph87.electro.circuit.part;
|
package de.ph87.electro.circuit.part;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.ShortCircuit;
|
import de.ph87.electro.circuit.ShortCircuit;
|
||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package de.ph87.electro.circuit.part.impl;
|
package de.ph87.electro.circuit.part.parts;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.JunctionDto;
|
import de.ph87.electro.circuit.part.JunctionDto;
|
||||||
import de.ph87.electro.circuit.part.PartDto;
|
import de.ph87.electro.circuit.part.PartDto;
|
||||||
@ -2,7 +2,7 @@ package de.ph87.electro.demo;
|
|||||||
|
|
||||||
import de.ph87.electro.circuit.Circuit;
|
import de.ph87.electro.circuit.Circuit;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
|
|
||||||
import static de.ph87.electro.CONFIG.BULB_VOLTAGE_MIN;
|
import static de.ph87.electro.CONFIG.BULB_VOLTAGE_MIN;
|
||||||
import static de.ph87.electro.CONFIG.VOLTAGE;
|
import static de.ph87.electro.CONFIG.VOLTAGE;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package de.ph87.electro.sidebar;
|
package de.ph87.electro.sidebar;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Part;
|
import de.ph87.electro.circuit.part.Part;
|
||||||
import de.ph87.electro.circuit.part.impl.*;
|
import de.ph87.electro.circuit.part.parts.*;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import de.ph87.electro.circuit.part.impl.PartSwitch1x1;
|
import de.ph87.electro.circuit.part.parts.PartSwitch1x1;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import de.ph87.electro.circuit.part.impl.PartSwitch1x2;
|
import de.ph87.electro.circuit.part.parts.PartSwitch1x2;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import de.ph87.electro.circuit.part.impl.PartSwitch1x2;
|
import de.ph87.electro.circuit.part.parts.PartSwitch1x2;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
package de.ph87.electro.circuit;
|
package de.ph87.electro.circuit;
|
||||||
|
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import de.ph87.electro.circuit.part.impl.PartSwitch1x2;
|
import de.ph87.electro.circuit.part.parts.PartSwitch1x2;
|
||||||
import de.ph87.electro.circuit.part.impl.PartSwitchCross;
|
import de.ph87.electro.circuit.part.parts.PartSwitchCross;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package de.ph87.electro.circuit;
|
|||||||
import de.ph87.electro.circuit.part.Junction;
|
import de.ph87.electro.circuit.part.Junction;
|
||||||
import de.ph87.electro.circuit.part.Orientation;
|
import de.ph87.electro.circuit.part.Orientation;
|
||||||
import de.ph87.electro.circuit.part.Part;
|
import de.ph87.electro.circuit.part.Part;
|
||||||
import de.ph87.electro.circuit.part.impl.PartBattery;
|
import de.ph87.electro.circuit.part.parts.PartBattery;
|
||||||
import de.ph87.electro.circuit.part.impl.PartLight;
|
import de.ph87.electro.circuit.part.parts.PartLight;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
@ -54,13 +54,16 @@ class CircuitServiceTest {
|
|||||||
assertEquals(originalJunction.getUuid(), reloadedJunction.getUuid());
|
assertEquals(originalJunction.getUuid(), reloadedJunction.getUuid());
|
||||||
assertEquals(originalJunction.getName(), reloadedJunction.getName());
|
assertEquals(originalJunction.getName(), reloadedJunction.getName());
|
||||||
assertEquals(originalJunction.getPosition(), reloadedJunction.getPosition());
|
assertEquals(originalJunction.getPosition(), reloadedJunction.getPosition());
|
||||||
assertEquals(originalJunction.getDestinations().size(), reloadedJunction.getDestinations().size());
|
assertEquals(originalJunction.getWires().size(), reloadedJunction.getWires().size());
|
||||||
for (final Junction originalDestination : originalJunction.getDestinations()) {
|
originalJunction.getWires().stream()
|
||||||
System.out.printf(" - Destination: %s\n", originalDestination.getUuid());
|
.map(originalWire -> originalWire.getOpposite(originalJunction))
|
||||||
final Junction reloadedDestination = reloadedJunction.getDestinations().stream().filter(destination -> destination.getUuid().equals(originalDestination.getUuid())).findFirst().orElseThrow();
|
.forEach(originalDestination -> {
|
||||||
assertEquals(originalDestination.getUuid(), reloadedDestination.getUuid());
|
System.out.printf(" - Destinations: %s\n", originalDestination.getUuid());
|
||||||
assertEquals(originalDestination.getOwner().getUuid(), reloadedDestination.getOwner().getUuid());
|
final Junction reloadedDestination = reloadedJunction.getWires().stream().map(wire -> wire.getOpposite(reloadedJunction)).filter(destination -> destination.getUuid().equals(originalDestination.getUuid())).findFirst().orElseThrow();
|
||||||
}
|
assertEquals(originalDestination.getUuid(), reloadedDestination.getUuid());
|
||||||
|
assertEquals(originalDestination.getOwner().getUuid(), reloadedDestination.getOwner().getUuid());
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user