1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package com.rapiddweller.domain.address;
28
29 import com.rapiddweller.common.NullSafeComparator;
30 import com.rapiddweller.common.OrderedMap;
31
32 import java.util.Collection;
33 import java.util.Locale;
34 import java.util.Map;
35
36
37
38
39
40
41
42
43
44 public class State {
45
46 private String id;
47 private String name;
48 private Country country;
49 private final Map<CityId, City> cities;
50 private int population;
51 private Locale defaultLanguageLocale;
52
53
54
55
56
57
58 public State() {
59 this(null);
60 }
61
62
63
64
65
66
67 public State(String id) {
68 this.id = id;
69 this.cities = new OrderedMap<>();
70 }
71
72
73
74
75
76
77
78
79 public String getId() {
80 return id;
81 }
82
83
84
85
86
87
88 public void setId(String id) {
89 this.id = id;
90 }
91
92
93
94
95
96
97 public String getName() {
98 return name;
99 }
100
101
102
103
104
105
106 public void setName(String name) {
107 this.name = name;
108 }
109
110
111
112
113
114
115 public String getDefaultLanguage() {
116 return getDefaultLanguageLocale().getLanguage();
117 }
118
119
120
121
122
123
124 public void setDefaultLanguage(String defaultLanguage) {
125 setDefaultLanguageLocale(new Locale(defaultLanguage));
126 }
127
128
129
130
131
132
133 public Locale getDefaultLanguageLocale() {
134 if (defaultLanguageLocale != null) {
135 return defaultLanguageLocale;
136 } else {
137 return country.getDefaultLanguageLocale();
138 }
139 }
140
141
142
143
144
145
146 public void setDefaultLanguageLocale(Locale defaultLanguage) {
147 this.defaultLanguageLocale = defaultLanguage;
148 }
149
150
151
152
153
154
155 public int getPopulation() {
156 return population;
157 }
158
159
160
161
162
163
164 public void setPopulation(int population) {
165 this.population = population;
166 }
167
168
169
170
171
172
173 public Country getCountry() {
174 return country;
175 }
176
177
178
179
180
181
182 public void setCountry(Country country) {
183 this.country = country;
184 }
185
186
187
188
189
190
191
192
193
194 public City getCity(CityId id) {
195 country.checkCities();
196 return cities.get(id);
197 }
198
199
200
201
202
203
204 public Collection<City> getCities() {
205 country.checkCities();
206 return cities.values();
207 }
208
209
210
211
212
213
214
215 public void addCity(CityId id, City city) {
216 city.setState(this);
217 cities.put(id, city);
218 }
219
220
221
222 @Override
223 public String toString() {
224 return (name != null ? name : id);
225 }
226
227 @Override
228 public int hashCode() {
229 return NullSafeComparator.hashCode(country) * 31 + name.hashCode();
230 }
231
232 @Override
233 public boolean equals(Object obj) {
234 if (this == obj) {
235 return true;
236 }
237 if (obj == null) {
238 return false;
239 }
240 if (getClass() != obj.getClass()) {
241 return false;
242 }
243 final Statef="../../../../com/rapiddweller/domain/address/State.html#State">State that = (State) obj;
244 if (!NullSafeComparator.equals(this.country, that.country)) {
245 return false;
246 }
247 return name.equals(that.name);
248 }
249
250 }