1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.data.validate;
18
19 import io.github.tonywasher.joceanus.oceanus.date.OceanusDate;
20 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusRate;
21 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicResource;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseDepositRate;
23 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseDepositRate.MoneyWiseDepositRateDataMap;
24 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseDepositRate.MoneyWiseDepositRateList;
25 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
26 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataValidator;
27
28
29
30
31 public class MoneyWiseValidateDepositRate
32 implements PrometheusDataValidator {
33
34 @Override
35 public void validate(final PrometheusDataItem pRate) {
36 final MoneyWiseDepositRate myRate = (MoneyWiseDepositRate) pRate;
37 final MoneyWiseDepositRateList myList = myRate.getList();
38 final OceanusDate myDate = myRate.getEndDate();
39 final OceanusRate myDepRate = myRate.getRate();
40 final OceanusRate myBonus = myRate.getBonus();
41
42
43 final MoneyWiseDepositRateDataMap myMap = myList.getDataMap();
44 if (!myMap.validRateCount(myRate)) {
45
46 pRate.addError(myDate == null
47 ? MoneyWiseDepositRate.ERROR_NULLDATE
48 : PrometheusDataItem.ERROR_DUPLICATE, MoneyWiseBasicResource.DEPOSITRATE_ENDDATE);
49 }
50
51
52 if (myDepRate == null) {
53 pRate.addError(PrometheusDataItem.ERROR_MISSING, MoneyWiseBasicResource.MONEYWISEDATA_FIELD_RATE);
54 } else if (!myDepRate.isPositive()) {
55 pRate.addError(PrometheusDataItem.ERROR_NEGATIVE, MoneyWiseBasicResource.MONEYWISEDATA_FIELD_RATE);
56 }
57
58
59 if (myBonus != null) {
60 if (myBonus.isZero()) {
61 pRate.addError(PrometheusDataItem.ERROR_ZERO, MoneyWiseBasicResource.DEPOSITRATE_BONUS);
62 } else if (!myBonus.isPositive()) {
63 pRate.addError(PrometheusDataItem.ERROR_NEGATIVE, MoneyWiseBasicResource.DEPOSITRATE_BONUS);
64 }
65 }
66
67
68 if (!pRate.hasErrors()) {
69 pRate.setValidEdit();
70 }
71 }
72 }