1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.values;
18
19 import io.github.tonywasher.joceanus.metis.data.MetisDataType;
20 import io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.base.MoneyWiseXAnalysisAttribute;
21 import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleId;
22
23
24
25
26 public enum MoneyWiseXAnalysisSecurityAttr
27 implements MoneyWiseXAnalysisAttribute {
28
29
30
31 UNITS,
32
33
34
35
36 PRICE,
37
38
39
40
41 VALUE,
42
43
44
45
46 EXCHANGERATE,
47
48
49
50
51 VALUATION,
52
53
54
55
56 VALUEDELTA,
57
58
59
60
61 RESIDUALCOST,
62
63
64
65
66 REALISEDGAINS,
67
68
69
70
71 UNREALISEDGAINS,
72
73
74
75
76 GAINSADJUST,
77
78
79
80
81 DIVIDEND,
82
83
84
85
86 PROFIT,
87
88
89
90
91 MARKETPROFIT,
92
93
94
95
96 CASHINVESTED,
97
98
99
100
101 RETURNEDCASH,
102
103
104
105
106 XFERREDVALUE,
107
108
109
110
111 CAPITALGAIN,
112
113
114
115
116 ALLOWEDCOST,
117
118
119
120
121 XFERREDCOST,
122
123
124
125
126 FUNDED,
127
128
129
130
131 STARTDATE,
132
133
134
135
136 SLICEYEARS,
137
138
139
140
141 SLICEGAIN,
142
143
144
145
146 CONSIDERATION,
147
148
149
150
151 COSTDILUTION,
152
153
154
155
156 CASHTYPE;
157
158
159
160
161 private String theName;
162
163 @Override
164 public String toString() {
165
166 if (theName == null) {
167
168 theName = bundleIdForAttribute(this).getValue();
169 }
170
171
172 return theName;
173 }
174
175 @Override
176 public boolean isPreserved() {
177 return switch (this) {
178 case UNITS, DIVIDEND, RESIDUALCOST, VALUATION, EXCHANGERATE, VALUE, PRICE, REALISEDGAINS, UNREALISEDGAINS,
179 GAINSADJUST, FUNDED, STARTDATE -> true;
180 default -> false;
181 };
182 }
183
184 @Override
185 public MetisDataType getDataType() {
186 return switch (this) {
187 case UNITS -> MetisDataType.UNITS;
188 case PRICE -> MetisDataType.PRICE;
189 case EXCHANGERATE, COSTDILUTION -> MetisDataType.RATIO;
190 case CASHTYPE -> MetisDataType.ENUM;
191 case STARTDATE -> MetisDataType.DATE;
192 default -> MetisDataType.MONEY;
193 };
194 }
195
196
197
198
199
200
201
202 private static OceanusBundleId bundleIdForAttribute(final MoneyWiseXAnalysisSecurityAttr pAttr) {
203 return switch (pAttr) {
204 case VALUE -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_VALUE;
205 case VALUATION -> MoneyWiseXAnalysisValuesResource.ACCOUNTATTR_VALUATION;
206 case VALUEDELTA -> MoneyWiseXAnalysisValuesResource.ACCOUNTATTR_VALUEDELTA;
207 case EXCHANGERATE -> MoneyWiseXAnalysisValuesResource.ACCOUNTATTR_EXCHANGERATE;
208 case UNITS -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_UNITS;
209 case RESIDUALCOST -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_RESIDUALCOST;
210 case DIVIDEND -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_DIVIDEND;
211 case REALISEDGAINS -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_REALISEDGAINS;
212 case UNREALISEDGAINS -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_UNREALISEDGAINS;
213 case GAINSADJUST -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_GAINSADJUST;
214 case MARKETPROFIT -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_MARKETPROFIT;
215 case PROFIT -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_PROFIT;
216 case RETURNEDCASH -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_RETURNEDCASH;
217 case XFERREDVALUE -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_XFERREDVALUE;
218 case XFERREDCOST -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_XFERREDCOST;
219 case CASHINVESTED -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_CASHINVESTED;
220 case CAPITALGAIN -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_CAPITALGAIN;
221 case ALLOWEDCOST -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_ALLOWEDCOST;
222 case PRICE -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_PRICE;
223 case STARTDATE -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_STARTDATE;
224 case FUNDED -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_FUNDED;
225 case SLICEGAIN -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_SLICEGAIN;
226 case SLICEYEARS -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_SLICEYEARS;
227 case CONSIDERATION -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_CONSIDERATION;
228 case COSTDILUTION -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_COSTDILUTION;
229 case CASHTYPE -> MoneyWiseXAnalysisValuesResource.SECURITYATTR_CASHTYPE;
230 default -> throw new IllegalArgumentException();
231 };
232 }
233 }