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.tax;
18  
19  import io.github.tonywasher.joceanus.metis.data.MetisDataItem.MetisDataFieldId;
20  import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleId;
21  import io.github.tonywasher.joceanus.oceanus.resource.OceanusBundleLoader;
22  
23  import java.util.ResourceBundle;
24  
25  /**
26   * Resource IDs for MoneyWise Tax Fields.
27   */
28  public enum MoneyWiseTaxResource
29          implements OceanusBundleId, MetisDataFieldId {
30      /**
31       * Basic Allowance.
32       */
33      ALLOWANCE_BASIC("Allowance.Basic"),
34  
35      /**
36       * Rental Allowance.
37       */
38      ALLOWANCE_RENTAL("Allowance.Rental"),
39  
40      /**
41       * Capital Allowance.
42       */
43      ALLOWANCE_CAPITAL("Allowance.Capital"),
44  
45      /**
46       * Savings Allowance.
47       */
48      ALLOWANCE_SAVINGS("Allowance.Savings"),
49  
50      /**
51       * Dividend Allowance.
52       */
53      ALLOWANCE_DIVIDEND("Allowance.Dividend"),
54  
55      /**
56       * LoAge Allowance.
57       */
58      ALLOWANCE_LOAGE("Allowance.LoAge"),
59  
60      /**
61       * HiAge Allowance.
62       */
63      ALLOWANCE_HIAGE("Allowance.HiAge"),
64  
65      /**
66       * AgeAllowanceLimit.
67       */
68      LIMIT_AGEALLOWANCE("Limit.AgeAllowance"),
69  
70      /**
71       * AdditionalAllowanceLimit.
72       */
73      LIMIT_ADDALLOWANCE("Limit.AdditionalAllowance"),
74  
75      /**
76       * Scheme BaseRate.
77       */
78      SCHEME_BASE_RATE("Scheme.BaseRate"),
79  
80      /**
81       * Scheme HighRate.
82       */
83      SCHEME_HIGH_RATE("Scheme.HighRate"),
84  
85      /**
86       * Scheme AdditionalRate.
87       */
88      SCHEME_ADDITIONAL_RATE("Scheme.AdditionalRate"),
89  
90      /**
91       * Scheme Residential.
92       */
93      SCHEME_RESIDENTIAL("Scheme.Residential"),
94  
95      /**
96       * Scheme Relief Available.
97       */
98      SCHEME_RELIEF_AVAILABLE("Scheme.ReliefAvailable"),
99  
100     /**
101      * TaxBands Standard.
102      */
103     TAXBANDS_STANDARD("TaxBands.Standard"),
104 
105     /**
106      * TaxBands LoSavings.
107      */
108     TAXBANDS_LOSAVINGS("TaxBands.LoSavings"),
109 
110     /**
111      * TaxBands Amount.
112      */
113     TAXBANDS_AMOUNT("TaxBands.Amount"),
114 
115     /**
116      * TaxBands Rate.
117      */
118     TAXBANDS_RATE("TaxBands.Rate"),
119 
120     /**
121      * TaxBands TaxableIncome.
122      */
123     TAXBANDS_INCOME("TaxBands.Income"),
124 
125     /**
126      * TaxBands TaxDue.
127      */
128     TAXBANDS_TAXDUE("TaxBands.TaxDue"),
129 
130     /**
131      * TaxBands hasLoTaxBand.
132      */
133     TAXBANDS_HASLOTAXBAND("TaxBands.hasLoTaxBand"),
134 
135     /**
136      * TaxYear Name.
137      */
138     TAXYEAR_NAME("TaxYear.Name"),
139 
140     /**
141      * TaxYear End.
142      */
143     TAXYEAR_END("TaxYear.End"),
144 
145     /**
146      * TaxYear Allowances.
147      */
148     TAXYEAR_ALLOWANCES("TaxYear.Allowances"),
149 
150     /**
151      * TaxYear Bands.
152      */
153     TAXYEAR_BANDS("TaxYear.Bands"),
154 
155     /**
156      * TaxYear Capital.
157      */
158     TAXYEAR_INTEREST("TaxYear.Interest"),
159 
160     /**
161      * TaxYear Capital.
162      */
163     TAXYEAR_DIVIDEND("TaxYear.Dividend"),
164 
165     /**
166      * TaxYear Capital.
167      */
168     TAXYEAR_CAPITAL("TaxYear.Capital"),
169 
170     /**
171      * TaxYear Profit.
172      */
173     TAXYEAR_PROFIT("TaxYear.Profit"),
174 
175     /**
176      * TaxConfig Name.
177      */
178     TAXCONFIG_NAME("TaxConfig.Name"),
179 
180     /**
181      * TaxConfig GrossTaxable.
182      */
183     TAXCONFIG_GROSS("TaxConfig.GrossTaxable"),
184 
185     /**
186      * TaxConfig GrossPreSavings.
187      */
188     TAXCONFIG_PRESAVINGS("TaxConfig.GrossPreSavings"),
189 
190     /**
191      * TaxConfig Birthday.
192      */
193     TAXCONFIG_BIRTHDAY("TaxConfig.Birthday"),
194 
195     /**
196      * TaxConfig Age.
197      */
198     TAXCONFIG_AGE("TaxConfig.Age"),
199 
200     /**
201      * TaxConfig AgeAllowances.
202      */
203     TAXCONFIG_AGEALLOWANCE("TaxConfig.AgeAllowances"),
204 
205     /**
206      * Analysis TaxBuckets.
207      */
208     TAXANALYSIS_TAXBUCKETS("TaxAnalysis.TaxBuckets"),
209 
210     /**
211      * Analysis TaxProfit.
212      */
213     TAXANALYSIS_TAXPROFIT("TaxAnalysis.TaxProfit"),
214 
215     /**
216      * TaxPreference Name.
217      */
218     TAXPREF_NAME("preference.display"),
219 
220     /**
221      * TaxPreference Birthday.
222      */
223     TAXPREF_BIRTH("preference.birth"),
224 
225     /**
226      * Marginal Reduction.
227      */
228     MARGINAL_REDUCTION("Marginal.Name"),
229 
230     /**
231      * Marginal OneInTwo.
232      */
233     MARGINAL_ONEINTWO("Marginal.OneInTwo"),
234 
235     /**
236      * Marginal TwoInThree.
237      */
238     MARGINAL_TWOINTHREE("Marginal.TwoInThree"),
239 
240     /**
241      * CashType Large.
242      */
243     CASHTYPE_LARGE("CashType.Large"),
244 
245     /**
246      * CashType Small.
247      */
248     CASHTYPE_SMALL("CashType.Small"),
249 
250     /**
251      * ChargeableGain Gain.
252      */
253     CHARGEABLEGAIN_GAIN("ChargeableGain.Gain"),
254 
255     /**
256      * ChargeableGain Slice.
257      */
258     CHARGEABLEGAIN_SLICE("ChargeableGain.Slice"),
259 
260     /**
261      * ChargeableGain TotalGain.
262      */
263     CHARGEABLEGAIN_TOTALGAINS("ChargeableGain.TotalGains"),
264 
265     /**
266      * ChargeableGain TotalSlices.
267      */
268     CHARGEABLEGAIN_TOTALSLICES("ChargeableGain.TotalSlices"),
269 
270     /**
271      * ChargeableGain Ratio.
272      */
273     CHARGEABLEGAIN_RATIO("ChargeableGain.Ratio"),
274 
275     /**
276      * ChargeableGain TaxedSlices.
277      */
278     CHARGEABLEGAIN_TAXEDSLICES("ChargeableGain.TaxedSlices"),
279 
280     /**
281      * ChargeableGain NettTaxDue.
282      */
283     CHARGEABLEGAIN_NETTTAXDUE("ChargeableGain.NettTaxDue"),
284 
285     /**
286      * ChargeableGain TaxRelief.
287      */
288     CHARGEABLEGAIN_TAXRELIEF("ChargeableGain.TaxRelief");
289 
290     /**
291      * The Resource Loader.
292      */
293     private static final OceanusBundleLoader LOADER = OceanusBundleLoader.getLoader(MoneyWiseTaxResource.class.getCanonicalName(),
294             ResourceBundle::getBundle);
295 
296     /**
297      * The Id.
298      */
299     private final String theKeyName;
300 
301     /**
302      * The Value.
303      */
304     private String theValue;
305 
306     /**
307      * Constructor.
308      *
309      * @param pKeyName the key name
310      */
311     MoneyWiseTaxResource(final String pKeyName) {
312         theKeyName = pKeyName;
313     }
314 
315     @Override
316     public String getKeyName() {
317         return theKeyName;
318     }
319 
320     @Override
321     public String getNameSpace() {
322         return "MoneyWise.tax";
323     }
324 
325     @Override
326     public String getValue() {
327         /* If we have not initialised the value */
328         if (theValue == null) {
329             /* Derive the value */
330             theValue = LOADER.getValue(this);
331         }
332 
333         /* return the value */
334         return theValue;
335     }
336 
337     @Override
338     public String getId() {
339         return getValue();
340     }
341 }