Skip to content

Commit e8010ea

Browse files
committed
adding missing class hierarchies
extracting code from SimulationDescriptors
1 parent c3f88d1 commit e8010ea

File tree

5 files changed

+189
-35
lines changed

5 files changed

+189
-35
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package de.idrinth.endlessspace2.modvalidator;
2+
3+
import java.util.Objects;
4+
5+
public class Pair {
6+
7+
public final String from;
8+
public final String to;
9+
10+
public Pair(String from, String to) {
11+
this.from = from;
12+
this.to = to;
13+
}
14+
15+
@Override
16+
public int hashCode() {
17+
int hash = 73 * 3 + Objects.hashCode(this.from);
18+
return 73 * hash + Objects.hashCode(this.to);
19+
}
20+
21+
@Override
22+
public boolean equals(Object obj) {
23+
if (this == obj) {
24+
return true;
25+
}
26+
if (obj == null || getClass() != obj.getClass()) {
27+
return false;
28+
}
29+
final Pair other = (Pair) obj;
30+
return Objects.equals(this.from, other.from) && Objects.equals(this.to, other.to);
31+
}
32+
}

src/main/java/de/idrinth/endlessspace2/modvalidator/SimulationDescriptors.java

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.idrinth.endlessspace2.modvalidator;
22

3+
import de.idrinth.endlessspace2.modvalidator.data.SimulationDescriptorHierarchyHelper;
34
import java.util.Collection;
45
import java.util.HashMap;
56
import java.util.HashSet;
@@ -56,12 +57,7 @@ public SimulationDescriptors clone()
5657
private class SimulationDescriptorAdjuster {
5758
private final Set<Pair> keysToCopy;
5859
public SimulationDescriptorAdjuster() {
59-
//Stuff that is explained nowhere and still works
60-
keysToCopy = new HashSet<>();
61-
keysToCopy.add(new Pair("ClassStarSystem", "ClassColonizedStarSystem"));
62-
keysToCopy.add(new Pair("ClassColonizedStarSystem", "ClassExploitedStarSystem"));
63-
keysToCopy.add(new Pair("ClassPlanet", "ClassColonizedPlanet"));
64-
keysToCopy.add(new Pair("ClassGarrison", "ClassGarrisonFleet"));
60+
keysToCopy = SimulationDescriptorHierarchyHelper.provide();
6561
}
6662
public SimulationDescriptor get(String name, HashMap<String, SimulationDescriptor> data) {
6763
var result = data.get(name);
@@ -76,32 +72,5 @@ public SimulationDescriptor get(String name, HashMap<String, SimulationDescripto
7672
}
7773
return result;
7874
}
79-
private class Pair {
80-
public final String from;
81-
public final String to;
82-
83-
public Pair(String from, String to) {
84-
this.from = from;
85-
this.to = to;
86-
}
87-
88-
@Override
89-
public int hashCode() {
90-
int hash = 73 * 3 + Objects.hashCode(this.from);
91-
return 73 * hash + Objects.hashCode(this.to);
92-
}
93-
94-
@Override
95-
public boolean equals(Object obj) {
96-
if (this == obj) {
97-
return true;
98-
}
99-
if (obj == null || getClass() != obj.getClass()) {
100-
return false;
101-
}
102-
final Pair other = (Pair) obj;
103-
return Objects.equals(this.from, other.from) && Objects.equals(this.to, other.to);
104-
}
105-
}
10675
}
10776
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package de.idrinth.endlessspace2.modvalidator.data;
2+
3+
import de.idrinth.endlessspace2.modvalidator.Pair;
4+
import java.util.HashSet;
5+
6+
public class SimulationDescriptorHierarchyHelper {
7+
8+
public static HashSet<Pair> provide() {
9+
//Stuff that is explained nowhere and still works
10+
var keysToCopy = new HashSet<Pair>();
11+
//Empire
12+
keysToCopy.add(new Pair("ClassEmpire", "EmpireTypeMajor"));
13+
keysToCopy.add(new Pair("ClassEmpire", "EmpireTypeMinor"));
14+
keysToCopy.add(new Pair("ClassEmpire", "EmpireTypeLesser"));
15+
keysToCopy.add(new Pair("ClassEmpire", "EmpireTypePirate"));
16+
//Star System
17+
keysToCopy.add(new Pair("ClassStarSystem", "ClassColonizedStarSystem"));
18+
keysToCopy.add(new Pair("ClassStarSystem", "ClassLostSystem"));
19+
keysToCopy.add(new Pair("ClassColonizedStarSystem", "ClassExploitedStarSystem"));
20+
keysToCopy.add(new Pair("ClassPlanet", "ClassColonizedPlanet"));
21+
keysToCopy.add(new Pair("ClassResourceDeposit", "ClassColonizedResourceDeposit"));
22+
//Fleets
23+
keysToCopy.add(new Pair("ClassGarrison", "ClassGarrisonFleet"));
24+
//Population+Planet
25+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySophons"));
26+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityTerrans"));
27+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityMezari"));
28+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySheredyn"));
29+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityHoratio"));
30+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityTimeLords"));
31+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityCravers"));
32+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityHaroshems"));
33+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityVenetians"));
34+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityUnfallen"));
35+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityMavros"));
36+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityAmoeba"));
37+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityBenthys"));
38+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityBots"));
39+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityDeuyivans"));
40+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityPilgrims"));
41+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityZvali"));
42+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityTikanans"));
43+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityGnashasts"));
44+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityEyders"));
45+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityNiris"));
46+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityBhagabas"));
47+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityRemnant"));
48+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityPulsos"));
49+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityBasryxo"));
50+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityGuardians"));
51+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityGreenman"));
52+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityVaulters"));
53+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySistersOfMercy"));
54+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityHisshos"));
55+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityIllo"));
56+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityUmbralChoir"));
57+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityMinorHacking"));
58+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityTemplars"));
59+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityMinorOraculars"));
60+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySowers"));
61+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityKalTikMas"));
62+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySefaloros"));
63+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityGalvrans"));
64+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinityHarmony"));
65+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationPlanetAffinitySuperGuardians"));
66+
//Population+System
67+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySophons"));
68+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityTerrans"));
69+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityMezari"));
70+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySheredyn"));
71+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityHoratio"));
72+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityTimeLords"));
73+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityCravers"));
74+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityHaroshems"));
75+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityVenetians"));
76+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityUnfallen"));
77+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityMavros"));
78+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityAmoeba"));
79+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityBenthys"));
80+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityBots"));
81+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityDeuyivans"));
82+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityPilgrims"));
83+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityZvali"));
84+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityTikanans"));
85+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityGnashasts"));
86+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityEyders"));
87+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityNiris"));
88+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityBhagabas"));
89+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityRemnant"));
90+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityPulsos"));
91+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityBasryxo"));
92+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityGuardians"));
93+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityGreenman"));
94+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityVaulters"));
95+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySistersOfMercy"));
96+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityHisshos"));
97+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityIllo"));
98+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityUmbralChoir"));
99+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityMinorHacking"));
100+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityTemplars"));
101+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityMinorOraculars"));
102+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySowers"));
103+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityKalTikMas"));
104+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySefaloros"));
105+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityGalvrans"));
106+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinityHarmony"));
107+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationStarSystemAffinitySuperGuardians"));
108+
//Population+Empire
109+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySophons"));
110+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityTerrans"));
111+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityMezari"));
112+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySheredyn"));
113+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityHoratio"));
114+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityTimeLords"));
115+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityCravers"));
116+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityHaroshems"));
117+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityVenetians"));
118+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityUnfallen"));
119+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityMavros"));
120+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityAmoeba"));
121+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityBenthys"));
122+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityBots"));
123+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityDeuyivans"));
124+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityPilgrims"));
125+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityZvali"));
126+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityTikanans"));
127+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityGnashasts"));
128+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityEyders"));
129+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityNiris"));
130+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityBhagabas"));
131+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityRemnant"));
132+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityPulsos"));
133+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityBasryxo"));
134+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityGuardians"));
135+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityGreenman"));
136+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityVaulters"));
137+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySistersOfMercy"));
138+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityHisshos"));
139+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityIllo"));
140+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityUmbralChoir"));
141+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityMinorHacking"));
142+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityTemplars"));
143+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityMinorOraculars"));
144+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySowers"));
145+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityKalTikMas"));
146+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySefaloros"));
147+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityGalvrans"));
148+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinityHarmony"));
149+
keysToCopy.add(new Pair("ClassPopulation", "ClassPopulationEmpireAffinitySuperGuardians"));
150+
return keysToCopy;
151+
}
152+
}

src/main/java/de/idrinth/endlessspace2/modvalidator/SimulationReferenceListHelper.java renamed to src/main/java/de/idrinth/endlessspace2/modvalidator/data/SimulationReferenceListHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package de.idrinth.endlessspace2.modvalidator;
1+
package de.idrinth.endlessspace2.modvalidator.data;
22

3+
import de.idrinth.endlessspace2.modvalidator.SimulationDescriptorReference;
34
import java.util.HashSet;
45

56
public class SimulationReferenceListHelper {

src/main/java/de/idrinth/endlessspace2/modvalidator/runner/Initial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import de.idrinth.endlessspace2.modvalidator.DataTransferHelper;
44
import de.idrinth.endlessspace2.modvalidator.SimulationDescriptors;
5-
import de.idrinth.endlessspace2.modvalidator.SimulationReferenceListHelper;
5+
import de.idrinth.endlessspace2.modvalidator.data.SimulationReferenceListHelper;
66
import de.idrinth.endlessspace2.modvalidator.TextOutputLogger;
77
import de.idrinth.endlessspace2.modvalidator.xmliterator.InitialLoadXMLIterator;
88
import de.idrinth.endlessspace2.modvalidator.xmliterator.ValidatingXMLIterator;

0 commit comments

Comments
 (0)