1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package p3j.pppm;
17
18 import java.io.Serializable;
19
20
21
22
23
24
25
26 public class SubPopulation implements Serializable {
27
28
29 private static final long serialVersionUID = 1501278366716906252L;
30
31
32 private String name = "";
33
34
35
36
37
38 private boolean additive = true;
39
40
41
42
43
44 private boolean consistingOfDescendantGenerations = false;
45
46
47
48
49
50 private boolean jumpOffPopulation = false;
51
52
53 public SubPopulation() {
54 }
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 public SubPopulation(String name, boolean jumpOffPop, boolean additive,
72 boolean consistOfDescGenerations) {
73 this.name = name;
74 this.jumpOffPopulation = jumpOffPop;
75 this.additive = additive;
76 this.consistingOfDescendantGenerations = consistOfDescGenerations;
77 }
78
79
80
81
82
83
84 public SubPopulation newSubPopulation() {
85 return new SubPopulation(name, jumpOffPopulation, additive,
86 consistingOfDescendantGenerations);
87 }
88
89
90
91
92
93
94 public String getName() {
95 return name;
96 }
97
98
99
100
101
102
103
104 public void setName(String name) {
105 this.name = name;
106 }
107
108
109
110
111
112
113 public boolean isAdditive() {
114 return additive;
115 }
116
117
118
119
120
121
122
123 public void setAdditive(boolean additive) {
124 this.additive = additive;
125 }
126
127
128
129
130
131
132 public boolean isConsistingOfDescendantGenerations() {
133 return consistingOfDescendantGenerations;
134 }
135
136
137
138
139
140
141
142 public void setConsistingOfDescendantGenerations(
143 boolean consistingOfDescendantGenerations) {
144 this.consistingOfDescendantGenerations = consistingOfDescendantGenerations;
145 }
146
147 @Override
148 public String toString() {
149 return getName()
150 + " ("
151 + (additive ? "+" : "-")
152 + (jumpOffPopulation ? ", jump-off" : "")
153 + (consistingOfDescendantGenerations ? ", has descendant generations"
154 : "") + ")";
155 }
156
157 public boolean isJumpOffPopulation() {
158 return jumpOffPopulation;
159 }
160
161 public void setJumpOffPopulation(boolean jumpOffPopulation) {
162 this.jumpOffPopulation = jumpOffPopulation;
163 }
164
165
166
167
168
169
170
171 public String getSimplifiedName() {
172 return name.toLowerCase().replace(" ", "").replace(":", "")
173 .replace("\\", "_").replace("/", "_");
174 }
175
176 @Override
177 public int hashCode() {
178 return name.hashCode()
179 ^ ("" + additive + consistingOfDescendantGenerations + jumpOffPopulation)
180 .hashCode();
181 }
182
183 @Override
184 public boolean equals(Object o) {
185 if (o == null || !(o instanceof SubPopulation))
186 return false;
187 SubPopulation oSubPop = (SubPopulation) o;
188 return name.equals(oSubPop.getName())
189 && additive == oSubPop.additive
190 && consistingOfDescendantGenerations == oSubPop.consistingOfDescendantGenerations
191 && jumpOffPopulation == oSubPop.jumpOffPopulation;
192 }
193 }