altered train registry:
Until now, trains were registered on Trains.trains map. From now on, trains are managed by BaseClass.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>de.srsoftware</groupId>
|
||||
<artifactId>web4rail</artifactId>
|
||||
<version>1.3.18</version>
|
||||
<version>1.3.19</version>
|
||||
<name>Web4Rail</name>
|
||||
<packaging>jar</packaging>
|
||||
<description>Java Model Railway Control</description>
|
||||
|
||||
@@ -111,6 +111,7 @@ editable train properties : veränderliche Zug-Eigenschaften
|
||||
Edit json : JSON bearbeiten
|
||||
Effect : Effekt
|
||||
Emergency : Notfall
|
||||
empty train : leerer Zug
|
||||
enable : aktivieren
|
||||
enable {} : {} aktivieren
|
||||
Engage {} : {} aktivieren
|
||||
|
||||
@@ -410,9 +410,10 @@ public abstract class BaseClass implements Constants{
|
||||
return parent;
|
||||
}
|
||||
|
||||
public BaseClass parent(BaseClass parent) {
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends BaseClass> T parent(BaseClass parent) {
|
||||
this.parent = parent;
|
||||
return this;
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
public Window properties() {
|
||||
|
||||
@@ -12,7 +12,6 @@ import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Vector;
|
||||
@@ -49,8 +48,6 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
private static final String CAR_ID = "carId";
|
||||
public static final String LOCO_ID = "locoId";
|
||||
private static final String TRACE = "trace";
|
||||
private static final HashMap<Id, Train> trains = new HashMap<>();
|
||||
public static final String ID = "id";
|
||||
|
||||
private static final String NAME = "name";
|
||||
private String name = null;
|
||||
@@ -118,17 +115,6 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
}
|
||||
}
|
||||
|
||||
public Train(Locomotive loco) {
|
||||
this(loco,null);
|
||||
}
|
||||
|
||||
public Train(Locomotive loco, Id id) {
|
||||
if (isNull(id)) id = new Id();
|
||||
this.id = id;
|
||||
add(loco);
|
||||
trains.put(id, this);
|
||||
}
|
||||
|
||||
public static Object action(HashMap<String, String> params, Plan plan) throws IOException {
|
||||
String action = params.get(ACTION);
|
||||
if (isNull(action)) return t("No action passed to Train.action!");
|
||||
@@ -142,7 +128,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
return t("No train id passed!");
|
||||
}
|
||||
Id id = Id.from(params);
|
||||
Train train = trains.get(id);
|
||||
Train train = BaseClass.get(id);
|
||||
if (isNull(train)) return(t("No train with id {}!",id));
|
||||
switch (action) {
|
||||
case ACTION_ADD:
|
||||
@@ -213,10 +199,12 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
return properties();
|
||||
}
|
||||
|
||||
public void add(Car car) {
|
||||
if (isNull(car)) return;
|
||||
cars.add(car);
|
||||
car.train(this);
|
||||
public Train add(Car car) {
|
||||
if (isSet(car)) {
|
||||
cars.add(car);
|
||||
car.train(this);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public String automatic() {
|
||||
@@ -327,7 +315,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
if (isNull(locoId)) return t("Need loco id to create new train!");
|
||||
Locomotive loco = BaseClass.get(new Id(locoId));
|
||||
if (isNull(loco)) return t("unknown locomotive: {}",params.get(ID));
|
||||
Train train = new Train(loco);
|
||||
Train train = new Train().add(loco);
|
||||
train.parent(plan);
|
||||
if (params.containsKey(NAME)) train.name(params.get(NAME));
|
||||
train.register();
|
||||
@@ -386,10 +374,6 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
return properties();
|
||||
}
|
||||
|
||||
public static Train get(Id id) {
|
||||
return trains.get(id);
|
||||
}
|
||||
|
||||
public Train heading(Direction dir) {
|
||||
LOG.debug("{}.heading({})",this,dir);
|
||||
direction = dir;
|
||||
@@ -448,8 +432,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
while (isSet(line)) {
|
||||
JSONObject json = new JSONObject(line);
|
||||
|
||||
Train train = new Train(null,Id.from(json));
|
||||
train.load(json).parent(plan);
|
||||
new Train().load(json).parent(plan);
|
||||
|
||||
line = file.readLine();
|
||||
}
|
||||
@@ -537,7 +520,13 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
|
||||
|
||||
public String name() {
|
||||
return (isSet(name) ? name : cars.stream().filter(car -> isSet(car.name())).findFirst().get().name());
|
||||
if (isSet(name)) return name;
|
||||
if (cars.isEmpty()) return t("emtpy train");
|
||||
for (Car car : cars) {
|
||||
String name = car.name();
|
||||
if (isSet(name)) return name;
|
||||
}
|
||||
return t("empty train");
|
||||
}
|
||||
|
||||
private Train name(String newName) {
|
||||
@@ -694,10 +683,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
||||
|
||||
public static void saveAll(String filename) throws IOException {
|
||||
BufferedWriter file = new BufferedWriter(new FileWriter(filename));
|
||||
for (Entry<Id, Train> entry:trains.entrySet()) {
|
||||
Train train = entry.getValue();
|
||||
file.write(train.json()+"\n");
|
||||
}
|
||||
for (Train train:BaseClass.listElements(Train.class)) file.write(train.json()+"\n");
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user