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.metis.field.MetisFieldRequired;
20 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWisePortfolio;
21 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWisePortfolioInfo;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWisePortfolioInfoSet;
23 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseAccountInfoClass;
24 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataInfoClass;
25 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
26 import io.github.tonywasher.joceanus.prometheus.validate.PrometheusValidateInfoSet;
27
28
29
30
31 public class MoneyWiseValidatePortfolioInfoSet
32 extends PrometheusValidateInfoSet<MoneyWisePortfolioInfo> {
33 @Override
34 public MoneyWisePortfolio getOwner() {
35 return (MoneyWisePortfolio) super.getOwner();
36 }
37
38 @Override
39 public MoneyWisePortfolioInfoSet getInfoSet() {
40 return (MoneyWisePortfolioInfoSet) super.getInfoSet();
41 }
42
43 @Override
44 public MetisFieldRequired isClassRequired(final PrometheusDataInfoClass pClass) {
45
46 switch ((MoneyWiseAccountInfoClass) pClass) {
47
48 case NOTES:
49 case SORTCODE:
50 case ACCOUNT:
51 case REFERENCE:
52 case WEBSITE:
53 case CUSTOMERNO:
54 case USERID:
55 case PASSWORD:
56 return MetisFieldRequired.CANEXIST;
57
58
59 case MATURITY:
60 case OPENINGBALANCE:
61 case AUTOEXPENSE:
62 case AUTOPAYEE:
63 case SYMBOL:
64 case REGION:
65 case UNDERLYINGSTOCK:
66 case OPTIONPRICE:
67 default:
68 return MetisFieldRequired.NOTALLOWED;
69 }
70 }
71
72 @Override
73 public void validateClass(final MoneyWisePortfolioInfo pInfo,
74 final PrometheusDataInfoClass pClass) {
75
76 switch ((MoneyWiseAccountInfoClass) pClass) {
77 case WEBSITE:
78 case CUSTOMERNO:
79 case USERID:
80 case PASSWORD:
81 case SORTCODE:
82 case ACCOUNT:
83 case NOTES:
84 case REFERENCE:
85 validateInfoLength(pInfo);
86 break;
87 default:
88 break;
89 }
90 }
91
92
93
94
95
96
97 private void validateInfoLength(final MoneyWisePortfolioInfo pInfo) {
98 final char[] myArray = pInfo.getValue(char[].class);
99 final MoneyWiseAccountInfoClass myClass = pInfo.getInfoClass();
100 if (myArray.length > myClass.getMaximumLength()) {
101 getOwner().addError(PrometheusDataItem.ERROR_LENGTH, MoneyWisePortfolioInfoSet.getFieldForClass(myClass));
102 }
103 }
104 }