1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.tax;
18
19 import io.github.tonywasher.joceanus.oceanus.date.OceanusDate;
20 import io.github.tonywasher.joceanus.oceanus.format.OceanusDataFormatter;
21 import io.github.tonywasher.joceanus.metis.field.MetisFieldItem;
22 import io.github.tonywasher.joceanus.metis.field.MetisFieldSet;
23 import io.github.tonywasher.joceanus.metis.preference.MetisPreferenceManager;
24 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseTax.MoneyWiseTaxCredit;
25
26
27
28
29 public abstract class MoneyWiseTaxYear
30 implements MetisFieldItem, MoneyWiseTaxCredit {
31
32
33
34 private static final MetisFieldSet<MoneyWiseTaxYear> FIELD_DEFS = MetisFieldSet.newFieldSet(MoneyWiseTaxYear.class);
35
36
37
38
39 static {
40 FIELD_DEFS.declareLocalField(MoneyWiseTaxResource.TAXYEAR_END, MoneyWiseTaxYear::getYearEnd);
41 }
42
43
44
45
46 private final OceanusDate theYear;
47
48
49
50
51
52
53 protected MoneyWiseTaxYear(final OceanusDate pDate) {
54 theYear = pDate;
55 }
56
57 @Override
58 public OceanusDate getYearEnd() {
59 return theYear;
60 }
61
62
63
64
65
66
67
68
69 public abstract MoneyWiseTaxAnalysis analyseTaxYear(MetisPreferenceManager pPreferences,
70 MoneyWiseTaxSource pTaxSource);
71
72 @Override
73 public String formatObject(final OceanusDataFormatter pFormatter) {
74 return toString();
75 }
76
77 @Override
78 public String toString() {
79 return Integer.toString(theYear.getYear());
80 }
81 }