diff --git a/src/main/java/de/srsoftware/web4rail/Connector.java b/src/main/java/de/srsoftware/web4rail/Connector.java index 01d9fff..d040ce9 100644 --- a/src/main/java/de/srsoftware/web4rail/Connector.java +++ b/src/main/java/de/srsoftware/web4rail/Connector.java @@ -2,17 +2,17 @@ package de.srsoftware.web4rail; public class Connector { - private String from; + private Plan.Direction from; private int y; private int x; - public Connector(int x, int y, String from) { + public Connector(int x, int y, Plan.Direction from) { this.x = x; this.y = y; this.from = from; } - public String from() { + public Plan.Direction from() { return from; } diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index 2cce1af..e9adcbd 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -7,6 +7,7 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import java.security.InvalidParameterException; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -54,6 +55,9 @@ import de.srsoftware.web4rail.tiles.TurnoutWN; import de.srsoftware.web4rail.tiles.TurnoutWS; public class Plan { + public enum Direction{ + NORTH, SOUTH, EAST, WEST + } private static final String ACTION = "action"; private static final String ACTION_ADD = "add"; private static final String ACTION_ANALYZE = "analyze"; @@ -67,10 +71,6 @@ public class Plan { private static final String Y = "y"; private static final String FILE = "file"; private static final String DIRECTION = "direction"; - public static final String EAST = "east"; - public static final String WEST = "west"; - public static final String SOUTH = "south"; - public static final String NORTH = "north"; private HashMap> tiles = new HashMap>(); private HashSet blocks = new HashSet(); @@ -101,7 +101,7 @@ public class Plan { for (Connector con : block.startPoints()) routes.addAll(follow(new Route().start(block),con)); } for (Route r : routes) LOG.debug("found route: {}",r); - return "analyze() not implemented, yet!"; + return t("Found {} routes.",routes.size()); } private Collection follow(Route route, Connector con) { @@ -177,10 +177,20 @@ public class Plan { } private String moveTile(String direction, String x, String y) throws NumberFormatException, IOException { - return moveTile(direction,Integer.parseInt(x),Integer.parseInt(y)); + switch (direction) { + case "south": + return moveTile(Direction.SOUTH,Integer.parseInt(x),Integer.parseInt(y)); + case "north": + return moveTile(Direction.NORTH,Integer.parseInt(x),Integer.parseInt(y)); + case "east": + return moveTile(Direction.EAST,Integer.parseInt(x),Integer.parseInt(y)); + case "west": + return moveTile(Direction.WEST,Integer.parseInt(x),Integer.parseInt(y)); + } + throw new InvalidParameterException(t("\"{}\" is not a known direction!")); } - private String moveTile(String direction, int x, int y) throws IOException { + private String moveTile(Direction direction, int x, int y) throws IOException { //LOG.debug("moveTile({},{},{})",direction,x,y); Vector moved = null; switch (direction) { diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index 657ab2a..e9864d8 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -4,11 +4,13 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.tiles.Block; +import de.srsoftware.web4rail.tiles.Signal; import de.srsoftware.web4rail.tiles.Tile; public class Route { - private Vector path; + private Vector path; + private Vector signals; public Tile add(Tile tile) { path.add(tile); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/BlockH.java b/src/main/java/de/srsoftware/web4rail/tiles/BlockH.java index d59ffcb..99f4f61 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/BlockH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/BlockH.java @@ -10,7 +10,7 @@ import org.json.JSONObject; import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Route; public class BlockH extends Block{ @@ -54,7 +54,7 @@ public class BlockH extends Block{ @Override public List startPoints() { - return List.of(new Connector(x-1, y, Plan.EAST),new Connector(x+len(), y, Plan.WEST)); + return List.of(new Connector(x-1, y, Direction.EAST),new Connector(x+len(), y, Direction.WEST)); } @Override diff --git a/src/main/java/de/srsoftware/web4rail/tiles/BlockV.java b/src/main/java/de/srsoftware/web4rail/tiles/BlockV.java index 39598c2..087e2a8 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/BlockV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/BlockV.java @@ -10,7 +10,7 @@ import org.json.JSONObject; import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; import de.srsoftware.web4rail.Route; public class BlockV extends Block{ @@ -54,7 +54,7 @@ public class BlockV extends Block{ @Override public List startPoints() { - return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x,y+height(),Plan.NORTH)); + return List.of(new Connector(x,y-1,Direction.SOUTH),new Connector(x,y+height(),Direction.NORTH)); } @Override diff --git a/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java b/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java index e133d73..59fed27 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/ContactH.java @@ -4,17 +4,18 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class ContactH extends Contact { @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: + case WEST: return List.of(new Connector(x+1,y,from)); - case Plan.EAST: + case EAST: return List.of(new Connector(x-1,y,from)); - } - return new Vector<>(); + default: + return new Vector<>(); + } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java b/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java index 8126b5d..e0146a3 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/ContactV.java @@ -4,18 +4,19 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class ContactV extends Contact { @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: + case NORTH: return List.of(new Connector(x,y+1,from)); - case Plan.SOUTH: + case SOUTH: return List.of(new Connector(x,y-1,from)); - } - return new Vector<>(); + default: + return new Vector<>(); + } } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Cross.java b/src/main/java/de/srsoftware/web4rail/tiles/Cross.java index 567f081..1ee6e94 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Cross.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Cross.java @@ -3,7 +3,8 @@ package de.srsoftware.web4rail.tiles; import java.util.List; import de.srsoftware.web4rail.Connector; +import de.srsoftware.web4rail.Plan.Direction; public abstract class Cross extends Tile { - public abstract List offsetConnections(String from); + public abstract List offsetConnections(Direction from); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java b/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java index 4a42768..ce392f0 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/CrossH.java @@ -7,19 +7,20 @@ import java.util.Vector; import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class CrossH extends Cross{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x+1,y+1,Plan.NORTH)); - case Plan.SOUTH: - return List.of(new Connector(x+1,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x+1,y+1,Direction.NORTH)); + case SOUTH: + return List.of(new Connector(x+1,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } @Override @@ -28,14 +29,16 @@ public class CrossH extends Cross{ } @Override - public List offsetConnections(String from) { + public List offsetConnections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+1,Plan.NORTH)); - case Plan.SOUTH: - return List.of(new Connector(x,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH)); + case SOUTH: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); + } @Override diff --git a/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java b/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java index 5691e42..e9ef6fb 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/CrossV.java @@ -6,6 +6,7 @@ import java.util.Map; import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.Connector; +import de.srsoftware.web4rail.Plan.Direction; public class CrossV extends Cross{ @@ -15,7 +16,7 @@ public class CrossV extends Cross{ } @Override - public List offsetConnections(String from) { + public List offsetConnections(Direction from) { return null; } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java index cd93551..e38eb1d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagES.java @@ -4,18 +4,19 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class DiagES extends Tile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.SOUTH: - return List.of(new Connector(x+1,y,Plan.WEST)); - case Plan.EAST: - return List.of(new Connector(x,y+1,Plan.NORTH)); + case SOUTH: + return List.of(new Connector(x+1,y,Direction.WEST)); + case EAST: + return List.of(new Connector(x,y+1,Direction.NORTH)); + default: + return new Vector(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java index 351c0af..e0eb28d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagNE.java @@ -4,18 +4,19 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class DiagNE extends Tile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x+1,y,Plan.WEST)); - case Plan.EAST: - return List.of(new Connector(x,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x+1,y,Direction.WEST)); + case EAST: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java index 7fc8450..e295cfc 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagSW.java @@ -4,17 +4,18 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class DiagSW extends Tile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.SOUTH: - return List.of(new Connector(x-1,y,Plan.EAST)); - case Plan.WEST: - return List.of(new Connector(x,y+1,Plan.NORTH)); + case SOUTH: + return List.of(new Connector(x-1,y,Direction.EAST)); + case WEST: + return List.of(new Connector(x,y+1,Direction.NORTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java b/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java index 8bf39d8..d0c4b94 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/DiagWN.java @@ -4,18 +4,19 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class DiagWN extends Tile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x-1,y,Plan.EAST)); - case Plan.WEST: - return List.of(new Connector(x,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x-1,y,Direction.EAST)); + case WEST: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java index b186e73..4f0b45e 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Shadow.java @@ -3,13 +3,14 @@ package de.srsoftware.web4rail.tiles; import java.util.List; import de.srsoftware.web4rail.Connector; +import de.srsoftware.web4rail.Plan.Direction; public class Shadow extends Tile{ private Tile overlay; @Override - public List connections(String from) { + public List connections(Direction from) { if (overlay instanceof StretchableTile) return overlay.connections(from); if (overlay instanceof Cross) return ((Cross)overlay).offsetConnections(from); return super.connections(from); diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Signal.java b/src/main/java/de/srsoftware/web4rail/tiles/Signal.java index 13f5c0d..a9abab6 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Signal.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Signal.java @@ -1,9 +1,13 @@ package de.srsoftware.web4rail.tiles; +import de.srsoftware.web4rail.Plan.Direction; + public abstract class Signal extends Tile{ public Signal() { super(); classes.add("signal"); } + + abstract boolean isAffectedFrom(Direction dir); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java index c7a1eca..d96567a 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalE.java @@ -4,17 +4,23 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class SignalE extends Signal{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: - return List.of(new Connector(x+1,y,from)); - case Plan.EAST: - return List.of(new Connector(x-1,y,from)); + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST)); + case EAST: + return List.of(new Connector(x-1,y,Direction.EAST)); + default: + return new Vector<>(); } - return new Vector<>(); + } + + @Override + boolean isAffectedFrom(Direction dir) { + return dir == Direction.EAST; } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java index 527a8d9..ef3d4ce 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalN.java @@ -4,18 +4,24 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class SignalN extends Signal { @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+1,from)); - case Plan.SOUTH: - return List.of(new Connector(x,y-1,from)); + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH)); + case SOUTH: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); + } + + @Override + boolean isAffectedFrom(Direction dir) { + return dir == Direction.NORTH; } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java index b094be2..ed64f0d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalS.java @@ -4,18 +4,24 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class SignalS extends Signal{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+1,from)); - case Plan.SOUTH: - return List.of(new Connector(x,y-1,from)); + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH)); + case SOUTH: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); + } + + @Override + boolean isAffectedFrom(Direction dir) { + return dir == Direction.SOUTH; } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalV.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalV.java deleted file mode 100644 index 798fa99..0000000 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalV.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.srsoftware.web4rail.tiles; - -import java.util.List; -import java.util.Vector; - -import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; - -public class SignalV extends Signal { - - @Override - public List connections(String from) { - switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+1,from)); - case Plan.SOUTH: - return List.of(new Connector(x,y-1,from)); - } - return new Vector<>(); - } -} diff --git a/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java b/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java index 1c60396..813f6c9 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/SignalW.java @@ -4,17 +4,23 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class SignalW extends Signal{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: - return List.of(new Connector(x+1,y,from)); - case Plan.EAST: - return List.of(new Connector(x-1,y,from)); + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST)); + case EAST: + return List.of(new Connector(x-1,y,Direction.EAST)); + default: + return new Vector<>(); } - return new Vector<>(); + } + + @Override + boolean isAffectedFrom(Direction dir) { + return dir == Direction.WEST; } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java b/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java index c3596d4..d8c95c2 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/StraightH.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class StraightH extends StretchableTile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: - return List.of(new Connector(x+len(),y,from)); - case Plan.EAST: - return List.of(new Connector(x-1,y,from)); + case WEST: + return List.of(new Connector(x+len(),y,Direction.WEST)); + case EAST: + return List.of(new Connector(x-1,y,Direction.EAST)); + default: + return new Vector<>(); } - return new Vector<>(); } @Override diff --git a/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java b/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java index 60bf19c..c4fec2f 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/StraightV.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class StraightV extends StretchableTile{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+height(),from)); - case Plan.SOUTH: - return List.of(new Connector(x,y-1,from)); + case NORTH: + return List.of(new Connector(x,y+height(),Direction.NORTH)); + case SOUTH: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } @Override diff --git a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java index 1dddf67..a8f1401 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/Tile.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/Tile.java @@ -20,6 +20,7 @@ import de.srsoftware.tools.Tag; import de.srsoftware.web4rail.Application; import de.srsoftware.web4rail.Connector; import de.srsoftware.web4rail.Window; +import de.srsoftware.web4rail.Plan.Direction; public abstract class Tile { @@ -37,7 +38,7 @@ public abstract class Tile { return new JSONObject(); } - public List connections(String from){ + public List connections(Direction from){ return new Vector<>(); } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java index fd606a9..0b7eac1 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutEN.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutEN extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.EAST: - return List.of(new Connector(x,y-1,Plan.SOUTH),new Connector(x-1, y, Plan.EAST)); - case Plan.NORTH: - case Plan.WEST: - return List.of(new Connector(x+1,y,Plan.WEST)); + case EAST: + return List.of(new Connector(x,y-1,Direction.SOUTH),new Connector(x-1, y, Direction.EAST)); + case NORTH: + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java index 57299a7..c117c32 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutES.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutES extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.EAST: - return List.of(new Connector(x,y+1,Plan.NORTH),new Connector(x-1, y, Plan.EAST)); - case Plan.SOUTH: - case Plan.WEST: - return List.of(new Connector(x+1,y,Plan.WEST)); + case EAST: + return List.of(new Connector(x,y+1,Direction.NORTH),new Connector(x-1, y, Direction.EAST)); + case SOUTH: + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java index 79feef5..6c08464 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNE.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutNE extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x,y+1,Plan.NORTH),new Connector(x+1, y, Plan.WEST)); - case Plan.SOUTH: - case Plan.EAST: - return List.of(new Connector(x,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH),new Connector(x+1, y, Direction.WEST)); + case SOUTH: + case EAST: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java index e8cd1a2..4dd190d 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutNW.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutNW extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.NORTH: - return List.of(new Connector(x-1,y,Plan.EAST),new Connector(x, y+1, Plan.NORTH)); - case Plan.WEST: - case Plan.SOUTH: - return List.of(new Connector(x,y-1,Plan.SOUTH)); + case NORTH: + return List.of(new Connector(x-1,y,Direction.EAST),new Connector(x, y+1, Direction.NORTH)); + case WEST: + case SOUTH: + return List.of(new Connector(x,y-1,Direction.SOUTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java index 2dc9c1e..e29034a 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSE.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutSE extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.SOUTH: - return List.of(new Connector(x+1,y,Plan.WEST),new Connector(x, y-1, Plan.SOUTH)); - case Plan.EAST: - case Plan.NORTH: - return List.of(new Connector(x,y+1,Plan.NORTH)); + case SOUTH: + return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y-1, Direction.SOUTH)); + case EAST: + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java index f3d91e0..f9f1c3b 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutSW.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutSW extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.SOUTH: - return List.of(new Connector(x-1,y,Plan.EAST),new Connector(x, y-1, Plan.SOUTH)); - case Plan.WEST: - case Plan.NORTH: - return List.of(new Connector(x,y+1,Plan.NORTH)); + case SOUTH: + return List.of(new Connector(x-1,y,Direction.EAST),new Connector(x, y-1, Direction.SOUTH)); + case WEST: + case NORTH: + return List.of(new Connector(x,y+1,Direction.NORTH)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java index 6b10c3f..947c433 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWN.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutWN extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: - return List.of(new Connector(x+1,y,from),new Connector(x, y-1, Plan.SOUTH)); - case Plan.EAST: - case Plan.NORTH: - return List.of(new Connector(x-1,y,Plan.EAST)); + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y-1, Direction.SOUTH)); + case EAST: + case NORTH: + return List.of(new Connector(x-1,y,Direction.EAST)); + default: + return new Vector<>(); } - return new Vector<>(); } } diff --git a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java index 54b0a69..055c2a6 100644 --- a/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java +++ b/src/main/java/de/srsoftware/web4rail/tiles/TurnoutWS.java @@ -4,19 +4,20 @@ import java.util.List; import java.util.Vector; import de.srsoftware.web4rail.Connector; -import de.srsoftware.web4rail.Plan; +import de.srsoftware.web4rail.Plan.Direction; public class TurnoutWS extends Turnout{ @Override - public List connections(String from) { + public List connections(Direction from) { switch (from) { - case Plan.WEST: - return List.of(new Connector(x+1,y,Plan.WEST),new Connector(x, y+1, Plan.NORTH)); - case Plan.EAST: - case Plan.SOUTH: - return List.of(new Connector(x-1,y,Plan.EAST)); + case WEST: + return List.of(new Connector(x+1,y,Direction.WEST),new Connector(x, y+1, Direction.NORTH)); + case EAST: + case SOUTH: + return List.of(new Connector(x-1,y,Direction.EAST)); + default: + return new Vector<>(); } - return new Vector<>(); } }