View Javadoc
1   /*
2    * MoneyWise: Finance Application
3    * Copyright 2012-2026. Tony Washer
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6    * use this file except in compliance with the License.  You may obtain a copy
7    * of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
14   * License for the specific language governing permissions and limitations under
15   * the License.
16   */
17  package io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.buckets;
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.metis.data.MetisDataItem.MetisDataFieldId;
22  import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicResource;
23  import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseStaticResource;
24  
25  import java.util.EnumMap;
26  import java.util.Map;
27  import java.util.ResourceBundle;
28  
29  /**
30   * Resource IDs for MoneyWise Analysis Fields.
31   */
32  public enum MoneyWiseXAnalysisBucketResource
33          implements OceanusBundleId, MetisDataFieldId {
34      /**
35       * Analysis Name.
36       */
37      ANALYSIS_NAME("Analysis.Name"),
38  
39      /**
40       * Analysis Analyser Name.
41       */
42      ANALYSIS_ANALYSER("Analysis.Analyser"),
43  
44      /**
45       * Analysis Manager Name.
46       */
47      ANALYSIS_MANAGER("Analysis.Manager"),
48  
49      /**
50       * Analysis Chargeable Events.
51       */
52      ANALYSIS_CHARGES("Analysis.Charges"),
53  
54      /**
55       * Analysis Dilution Events.
56       */
57      ANALYSIS_DILUTIONS("Analysis.Dilutions"),
58  
59      /**
60       * Analysis Totals.
61       */
62      ANALYSIS_TOTALS("Analysis.Totals"),
63  
64      /**
65       * Bucket Account.
66       */
67      BUCKET_ACCOUNT("Bucket.Account"),
68  
69      /**
70       * Bucket BaseValues.
71       */
72      BUCKET_BASEVALUES("Bucket.BaseValues"),
73  
74      /**
75       * Bucket History.
76       */
77      BUCKET_HISTORY("Bucket.History"),
78  
79      /**
80       * Bucket SnapShot.
81       */
82      BUCKET_SNAPSHOT("Bucket.SnapShot"),
83  
84      /**
85       * Bucket Values.
86       */
87      BUCKET_VALUES("Bucket.Values"),
88  
89      /**
90       * Bucket Previous Values.
91       */
92      BUCKET_PREVIOUS("Bucket.Previous"),
93  
94      /**
95       * Filter All.
96       */
97      FILTER_ALL("Filter.All"),
98  
99      /**
100      * TransTag Name.
101      */
102     TRANSTAG_NAME("TransTag.Name"),
103 
104     /**
105      * TransTag List.
106      */
107     TRANSTAG_LIST("TransTag.List"),
108 
109     /**
110      * Cash Name.
111      */
112     CASH_NAME("Cash.Name"),
113 
114     /**
115      * Cash List.
116      */
117     CASH_LIST("Cash.List"),
118 
119     /**
120      * CashCategory Name.
121      */
122     CASHCATEGORY_NAME("CashCategory.Name"),
123 
124     /**
125      * CashCategory List.
126      */
127     CASHCATEGORY_LIST("CashCategory.List"),
128 
129     /**
130      * Deposit Name.
131      */
132     DEPOSIT_NAME("Deposit.Name"),
133 
134     /**
135      * Deposit List.
136      */
137     DEPOSIT_LIST("Deposit.List"),
138 
139     /**
140      * DepositCategory Name.
141      */
142     DEPOSITCATEGORY_NAME("DepositCategory.Name"),
143 
144     /**
145      * DepositCategory List.
146      */
147     DEPOSITCATEGORY_LIST("DepositCategory.List"),
148 
149     /**
150      * Loan Name.
151      */
152     LOAN_NAME("Loan.Name"),
153 
154     /**
155      * Loan List.
156      */
157     LOAN_LIST("Loan.List"),
158 
159     /**
160      * Loan isCreditCard.
161      */
162     LOAN_CREDITCARD("Loan.isCreditCard"),
163 
164     /**
165      * LoanCategory Name.
166      */
167     LOANCATEGORY_NAME("LoanCategory.Name"),
168 
169     /**
170      * LoanCategory List.
171      */
172     LOANCATEGORY_LIST("LoanCategory.List"),
173 
174     /**
175      * TransactionCategory Name.
176      */
177     TRANSCATEGORY_NAME("TransCategory.Name"),
178 
179     /**
180      * TransactionCategory List.
181      */
182     TRANSCATEGORY_LIST("TransCategory.List"),
183 
184     /**
185      * Payee Name.
186      */
187     PAYEE_NAME("Payee.Name"),
188 
189     /**
190      * Payee List.
191      */
192     PAYEE_LIST("Payee.List"),
193 
194     /**
195      * Portfolio Name.
196      */
197     PORTFOLIO_NAME("Portfolio.Name"),
198 
199     /**
200      * Portfolio List.
201      */
202     PORTFOLIO_LIST("Portfolio.List"),
203 
204     /**
205      * Portfolio Cash Name.
206      */
207     PORTFOLIOCASH_NAME("Portfolio.Cash.Name"),
208 
209     /**
210      * Security Name.
211      */
212     SECURITY_NAME("Security.Name"),
213 
214     /**
215      * Security List.
216      */
217     SECURITY_LIST("Security.List"),
218 
219     /**
220      * TaxBasis Name.
221      */
222     TAXBASIS_NAME("TaxBasis.Name"),
223 
224     /**
225      * TaxBasis List.
226      */
227     TAXBASIS_LIST("TaxBasis.List"),
228 
229     /**
230      * TaxBasisAccount Name.
231      */
232     TAXBASIS_ACCOUNTNAME("TaxBasis.AccountName"),
233 
234     /**
235      * TaxBasisAccount List.
236      */
237     TAXBASIS_ACCOUNTLIST("TaxBasis.AccountList"),
238 
239     /**
240      * Dilution Name.
241      */
242     DILUTION_NAME("Dilution.Name"),
243 
244     /**
245      * Dilution List.
246      */
247     DILUTION_LIST("Dilution.List"),
248 
249     /**
250      * Charge Name.
251      */
252     CHARGE_NAME("Charge.Name"),
253 
254     /**
255      * Charge List.
256      */
257     CHARGE_LIST("Charge.List"),
258 
259     /**
260      * Charge Slice.
261      */
262     CHARGE_SLICE("Charge.Slice"),
263 
264     /**
265      * Charge Tax.
266      */
267     CHARGE_TAX("Charge.Tax"),
268 
269     /**
270      * TaxCalculation.
271      */
272     TAX_CALCULATION("Tax.Calculation"),
273 
274     /**
275      * TaxYears.
276      */
277     TAX_YEARS("Tax.Years");
278 
279     /**
280      * The AnalysisType Map.
281      */
282     private static final Map<MoneyWiseXAnalysisType, OceanusBundleId> ANALYSIS_MAP = buildAnalysisMap();
283 
284     /**
285      * The Resource Loader.
286      */
287     private static final OceanusBundleLoader LOADER = OceanusBundleLoader.getLoader(MoneyWiseXAnalysisBucketResource.class.getCanonicalName(),
288             ResourceBundle::getBundle);
289 
290     /**
291      * The Id.
292      */
293     private final String theKeyName;
294 
295     /**
296      * The Value.
297      */
298     private String theValue;
299 
300     /**
301      * Constructor.
302      *
303      * @param pKeyName the key name
304      */
305     MoneyWiseXAnalysisBucketResource(final String pKeyName) {
306         theKeyName = pKeyName;
307     }
308 
309     @Override
310     public String getKeyName() {
311         return theKeyName;
312     }
313 
314     @Override
315     public String getNameSpace() {
316         return "MoneyWise.analysis";
317     }
318 
319     @Override
320     public String getValue() {
321         /* If we have not initialised the value */
322         if (theValue == null) {
323             /* Derive the value */
324             theValue = LOADER.getValue(this);
325         }
326 
327         /* return the value */
328         return theValue;
329     }
330 
331     @Override
332     public String getId() {
333         return getValue();
334     }
335 
336     /**
337      * Build analysis map.
338      *
339      * @return the map
340      */
341     private static Map<MoneyWiseXAnalysisType, OceanusBundleId> buildAnalysisMap() {
342         /* Create the map and return it */
343         final Map<MoneyWiseXAnalysisType, OceanusBundleId> myMap = new EnumMap<>(MoneyWiseXAnalysisType.class);
344         myMap.put(MoneyWiseXAnalysisType.DEPOSIT, MoneyWiseBasicResource.DEPOSIT_NAME);
345         myMap.put(MoneyWiseXAnalysisType.CASH, MoneyWiseBasicResource.CASH_NAME);
346         myMap.put(MoneyWiseXAnalysisType.LOAN, MoneyWiseBasicResource.LOAN_NAME);
347         myMap.put(MoneyWiseXAnalysisType.PAYEE, MoneyWiseBasicResource.PAYEE_NAME);
348         myMap.put(MoneyWiseXAnalysisType.SECURITY, MoneyWiseBasicResource.SECURITY_NAME);
349         myMap.put(MoneyWiseXAnalysisType.PORTFOLIO, MoneyWiseBasicResource.PORTFOLIO_NAME);
350         myMap.put(MoneyWiseXAnalysisType.CATEGORY, MoneyWiseBasicResource.TRANSCAT_NAME);
351         myMap.put(MoneyWiseXAnalysisType.TAXBASIS, MoneyWiseStaticResource.TAXBASIS_NAME);
352         myMap.put(MoneyWiseXAnalysisType.TRANSTAG, MoneyWiseBasicResource.TRANSTAG_NAME);
353         myMap.put(MoneyWiseXAnalysisType.ALL, FILTER_ALL);
354         return myMap;
355     }
356 
357     /**
358      * Obtain key for analysisType.
359      *
360      * @param pValue the Value
361      * @return the resource key
362      */
363     static OceanusBundleId getKeyForAnalysisType(final MoneyWiseXAnalysisType pValue) {
364         return OceanusBundleLoader.getKeyForEnum(ANALYSIS_MAP, pValue);
365     }
366 }