1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.atlas.reports;
18
19 import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleId;
20 import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleLoader;
21 import io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.buckets.MoneyWiseXAnalysisBucketResource;
22
23 import java.util.EnumMap;
24 import java.util.Map;
25 import java.util.ResourceBundle;
26
27
28
29
30 public enum MoneyWiseXReportResource implements OceanusBundleId {
31
32
33
34 TYPE_NETWORTH("Type.NetWorth"),
35
36
37
38
39 TYPE_BALANCESHEET("Type.BalanceSheet"),
40
41
42
43
44 TYPE_CASHFLOW("Type.CashFlow"),
45
46
47
48
49 TYPE_INCEXP("Type.IncExp"),
50
51
52
53
54 TYPE_PORTFOLIO("Type.Portfolio"),
55
56
57
58
59 TYPE_MARKET("Type.Market"),
60
61
62
63
64 TYPE_TAXBASIS("Type.TaxBasis"),
65
66
67
68
69 TYPE_TAXCALC("Type.TaxCalc"),
70
71
72
73
74 TYPE_ASSETGAINS("Type.AssetGains"),
75
76
77
78
79 TYPE_CAPITALGAINS("Type.CapitalGains"),
80
81
82
83
84 NETWORTH_TITLE("NetWorth.Title"),
85
86
87
88
89 NETWORTH_ASSET("NetWorth.Asset"),
90
91
92
93
94 BALANCESHEET_TITLE("BalanceSheet.Title"),
95
96
97
98
99 CASHFLOW_TITLE("CashFlow.Title"),
100
101
102
103
104 INCEXP_TITLE("IncExp.Title"),
105
106
107
108
109 PORTFOLIO_TITLE("Portfolio.Title"),
110
111
112
113
114 MARKETGROWTH_TITLE("MarketGrowth.Title"),
115
116
117
118
119 MARKETGROWTH_BASE("MarketGrowth.Base"),
120
121
122
123
124 ASSETGAINS_TITLE("AssetGains.Title"),
125
126
127
128
129 CAPITALGAINS_TITLE("CapitalGains.Title"),
130
131
132
133
134 TAXBASIS_TITLE("TaxBasis.Title"),
135
136
137
138
139 TAXCALC_TITLE("TaxCalc.Title");
140
141
142
143
144 private static final Map<MoneyWiseXReportType, OceanusBundleId> REPORT_MAP = buildReportMap();
145
146
147
148
149 private static final OceanusBundleLoader LOADER = OceanusBundleLoader.getLoader(MoneyWiseXAnalysisBucketResource.class.getCanonicalName(),
150 ResourceBundle::getBundle);
151
152
153
154
155 private final String theKeyName;
156
157
158
159
160 private String theValue;
161
162
163
164
165
166
167 MoneyWiseXReportResource(final String pKeyName) {
168 theKeyName = pKeyName;
169 }
170
171 @Override
172 public String getKeyName() {
173 return theKeyName;
174 }
175
176 @Override
177 public String getNameSpace() {
178 return "MoneyWise.report";
179 }
180
181 @Override
182 public String getValue() {
183
184 if (theValue == null) {
185
186 theValue = LOADER.getValue(this);
187 }
188
189
190 return theValue;
191 }
192
193
194
195
196
197
198 private static Map<MoneyWiseXReportType, OceanusBundleId> buildReportMap() {
199
200 final Map<MoneyWiseXReportType, OceanusBundleId> myMap = new EnumMap<>(MoneyWiseXReportType.class);
201 myMap.put(MoneyWiseXReportType.NETWORTH, TYPE_NETWORTH);
202 myMap.put(MoneyWiseXReportType.BALANCESHEET, TYPE_BALANCESHEET);
203 myMap.put(MoneyWiseXReportType.CASHFLOW, TYPE_CASHFLOW);
204 myMap.put(MoneyWiseXReportType.INCOMEEXPENSE, TYPE_INCEXP);
205 myMap.put(MoneyWiseXReportType.PORTFOLIO, TYPE_PORTFOLIO);
206 myMap.put(MoneyWiseXReportType.MARKETGROWTH, TYPE_MARKET);
207 myMap.put(MoneyWiseXReportType.TAXBASIS, TYPE_TAXBASIS);
208 myMap.put(MoneyWiseXReportType.TAXCALC, TYPE_TAXCALC);
209 myMap.put(MoneyWiseXReportType.ASSETGAINS, TYPE_ASSETGAINS);
210 myMap.put(MoneyWiseXReportType.CAPITALGAINS, TYPE_CAPITALGAINS);
211 return myMap;
212 }
213
214
215
216
217
218
219
220 static OceanusBundleId getKeyForReportType(final MoneyWiseXReportType pValue) {
221 return OceanusBundleLoader.getKeyForEnum(REPORT_MAP, pValue);
222 }
223 }