1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.data.statics;
18
19 import io.github.tonywasher.joceanus.oceanus.base.OceanusException;
20 import io.github.tonywasher.joceanus.metis.data.MetisDataItem.MetisDataFieldId;
21 import io.github.tonywasher.joceanus.metis.data.MetisDataType;
22 import io.github.tonywasher.joceanus.moneywise.exc.MoneyWiseDataException;
23 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataInfoClass;
24
25
26
27
28 public enum MoneyWiseAccountInfoClass
29 implements PrometheusDataInfoClass, MetisDataFieldId {
30
31
32
33 MATURITY(1, 0, MetisDataType.DATE),
34
35
36
37
38 OPENINGBALANCE(2, 1, MetisDataType.MONEY),
39
40
41
42
43 AUTOEXPENSE(3, 2, MetisDataType.LINK),
44
45
46
47
48 AUTOPAYEE(4, 3, MetisDataType.LINK),
49
50
51
52
53 WEBSITE(5, 4, MetisDataType.CHARARRAY),
54
55
56
57
58 CUSTOMERNO(6, 5, MetisDataType.CHARARRAY),
59
60
61
62
63 USERID(7, 6, MetisDataType.CHARARRAY),
64
65
66
67
68 PASSWORD(8, 7, MetisDataType.CHARARRAY),
69
70
71
72
73 SORTCODE(9, 8, MetisDataType.CHARARRAY),
74
75
76
77
78 ACCOUNT(10, 9, MetisDataType.CHARARRAY),
79
80
81
82
83 REFERENCE(11, 10, MetisDataType.CHARARRAY),
84
85
86
87
88 NOTES(12, 11, MetisDataType.CHARARRAY),
89
90
91
92
93 SYMBOL(13, 12, MetisDataType.STRING),
94
95
96
97
98 REGION(14, 13, MetisDataType.LINK),
99
100
101
102
103 UNDERLYINGSTOCK(15, 14, MetisDataType.LINK),
104
105
106
107
108 OPTIONPRICE(16, 15, MetisDataType.PRICE);
109
110
111
112
113 private String theName;
114
115
116
117
118 private final int theId;
119
120
121
122
123 private final int theOrder;
124
125
126
127
128 private final MetisDataType theDataType;
129
130
131
132
133
134
135
136
137 MoneyWiseAccountInfoClass(final int uId,
138 final int uOrder,
139 final MetisDataType pDataType) {
140 theId = uId;
141 theOrder = uOrder;
142 theDataType = pDataType;
143 }
144
145 @Override
146 public int getClassId() {
147 return theId;
148 }
149
150 @Override
151 public int getOrder() {
152 return theOrder;
153 }
154
155 @Override
156 public MetisDataType getDataType() {
157 return theDataType;
158 }
159
160 @Override
161 public boolean isLink() {
162 return theDataType == MetisDataType.LINK;
163 }
164
165 @Override
166 public boolean isLinkSet() {
167 return false;
168 }
169
170 @Override
171 public String toString() {
172
173 if (theName == null) {
174
175 theName = MoneyWiseStaticResource.getKeyForAccountInfo(this).getValue();
176 }
177
178
179 return theName;
180 }
181
182
183
184
185
186
187
188
189 public static MoneyWiseAccountInfoClass fromId(final int id) throws OceanusException {
190 for (MoneyWiseAccountInfoClass myClass : values()) {
191 if (myClass.getClassId() == id) {
192 return myClass;
193 }
194 }
195 throw new MoneyWiseDataException("Invalid ClassId for " + MoneyWiseStaticDataType.ACCOUNTINFOTYPE.toString() + ":" + id);
196 }
197
198
199
200
201
202
203 public int getMaximumLength() {
204 switch (this) {
205 case WEBSITE:
206 return MoneyWiseAccountInfoType.WEBSITE_LEN;
207 case CUSTOMERNO:
208 case USERID:
209 case PASSWORD:
210 case SORTCODE:
211 case ACCOUNT:
212 case REFERENCE:
213 return MoneyWiseAccountInfoType.DATA_LEN;
214 case NOTES:
215 return MoneyWiseAccountInfoType.NOTES_LEN;
216 case SYMBOL:
217 return MoneyWiseSecurityType.SYMBOL_LEN;
218 default:
219 return 0;
220 }
221 }
222
223 @Override
224 public String getId() {
225 return toString();
226 }
227 }