|
38 | 38 | import ru.mystamps.web.entity.Price;
|
39 | 39 | import ru.mystamps.web.entity.ScottCatalog;
|
40 | 40 | import ru.mystamps.web.entity.Series;
|
| 41 | +import ru.mystamps.web.entity.StampsCatalog; |
41 | 42 | import ru.mystamps.web.entity.User;
|
42 | 43 | import ru.mystamps.web.entity.YvertCatalog;
|
43 | 44 | import ru.mystamps.web.service.dto.AddSeriesDto;
|
@@ -69,23 +70,23 @@ public Series add(AddSeriesDto dto, User user, boolean userCanAddComments) {
|
69 | 70 | if (dto.getCountry() != null) {
|
70 | 71 | series.setCountry(dto.getCountry());
|
71 | 72 | }
|
72 |
| - |
| 73 | + |
73 | 74 | setDateOfReleaseIfProvided(dto, series);
|
74 |
| - |
| 75 | + |
75 | 76 | series.setCategory(dto.getCategory());
|
76 | 77 | series.setQuantity(dto.getQuantity());
|
77 | 78 | series.setPerforated(dto.getPerforated());
|
78 | 79 |
|
79 |
| - setMichelNumbersIfProvided(dto, series); |
| 80 | + series.setMichel(getCatalogNumbersOrNull(dto.getMichelNumbers(), MichelCatalog.class)); |
80 | 81 | series.setMichelPrice(Price.valueOf(dto.getMichelPrice(), dto.getMichelCurrency()));
|
81 | 82 |
|
82 |
| - setScottNumbersIfProvided(dto, series); |
| 83 | + series.setScott(getCatalogNumbersOrNull(dto.getScottNumbers(), ScottCatalog.class)); |
83 | 84 | series.setScottPrice(Price.valueOf(dto.getScottPrice(), dto.getScottCurrency()));
|
84 | 85 |
|
85 |
| - setYvertNumbersIfProvided(dto, series); |
| 86 | + series.setYvert(getCatalogNumbersOrNull(dto.getYvertNumbers(), YvertCatalog.class)); |
86 | 87 | series.setYvertPrice(Price.valueOf(dto.getYvertPrice(), dto.getYvertCurrency()));
|
87 | 88 |
|
88 |
| - setGibbonsNumbersIfProvided(dto, series); |
| 89 | + series.setGibbons(getCatalogNumbersOrNull(dto.getGibbonsNumbers(), GibbonsCatalog.class)); |
89 | 90 | series.setGibbonsPrice(Price.valueOf(dto.getGibbonsPrice(), dto.getGibbonsCurrency()));
|
90 | 91 |
|
91 | 92 | String imageUrl = imageService.save(dto.getImage());
|
@@ -196,36 +197,13 @@ private static void setDateOfReleaseIfProvided(AddSeriesDto dto, Series series)
|
196 | 197 | series.setReleaseDay(dto.getDay()); // even if day is null it won't change anything
|
197 | 198 | }
|
198 | 199 |
|
199 |
| - private static void setMichelNumbersIfProvided(AddSeriesDto dto, Series series) { |
200 |
| - Set<MichelCatalog> michelNumbers = |
201 |
| - CatalogUtils.fromString(dto.getMichelNumbers(), MichelCatalog.class); |
202 |
| - if (!michelNumbers.isEmpty()) { |
203 |
| - series.setMichel(michelNumbers); |
204 |
| - } |
205 |
| - } |
206 |
| - |
207 |
| - private static void setScottNumbersIfProvided(AddSeriesDto dto, Series series) { |
208 |
| - Set<ScottCatalog> scottNumbers = |
209 |
| - CatalogUtils.fromString(dto.getScottNumbers(), ScottCatalog.class); |
210 |
| - if (!scottNumbers.isEmpty()) { |
211 |
| - series.setScott(scottNumbers); |
212 |
| - } |
213 |
| - } |
214 |
| - |
215 |
| - private static void setYvertNumbersIfProvided(AddSeriesDto dto, Series series) { |
216 |
| - Set<YvertCatalog> yvertNumbers = |
217 |
| - CatalogUtils.fromString(dto.getYvertNumbers(), YvertCatalog.class); |
218 |
| - if (!yvertNumbers.isEmpty()) { |
219 |
| - series.setYvert(yvertNumbers); |
220 |
| - } |
221 |
| - } |
222 |
| - |
223 |
| - private static void setGibbonsNumbersIfProvided(AddSeriesDto dto, Series series) { |
224 |
| - Set<GibbonsCatalog> gibbonsNumbers = |
225 |
| - CatalogUtils.fromString(dto.getGibbonsNumbers(), GibbonsCatalog.class); |
226 |
| - if (!gibbonsNumbers.isEmpty()) { |
227 |
| - series.setGibbons(gibbonsNumbers); |
| 200 | + private static <T extends StampsCatalog> Set<T> getCatalogNumbersOrNull(String catalogNumbers, Class<T> clazz) { |
| 201 | + Set<T> result = CatalogUtils.fromString(catalogNumbers, clazz); |
| 202 | + if (result.isEmpty()) { |
| 203 | + return null; |
228 | 204 | }
|
| 205 | + |
| 206 | + return result; |
229 | 207 | }
|
230 | 208 |
|
231 | 209 | }
|
0 commit comments