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