1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.values;
18
19 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusMoney;
20 import io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.base.MoneyWiseAnalysisValues;
21
22 import java.util.Currency;
23
24
25
26
27 public class MoneyWiseAnalysisAccountValues
28 extends MoneyWiseAnalysisValues<MoneyWiseAnalysisAccountValues, MoneyWiseAnalysisAccountAttr> {
29
30
31
32
33
34 public MoneyWiseAnalysisAccountValues(final Currency pCurrency) {
35
36 super(MoneyWiseAnalysisAccountAttr.class);
37
38
39 super.setValue(MoneyWiseAnalysisAccountAttr.VALUATION, new OceanusMoney(pCurrency));
40 }
41
42
43
44
45
46
47
48 public MoneyWiseAnalysisAccountValues(final Currency pCurrency,
49 final Currency pReportingCurrency) {
50
51 this(pReportingCurrency);
52
53
54 super.setValue(MoneyWiseAnalysisAccountAttr.FOREIGNVALUE, new OceanusMoney(pCurrency));
55 super.setValue(MoneyWiseAnalysisAccountAttr.LOCALVALUE, new OceanusMoney(pReportingCurrency));
56 super.setValue(MoneyWiseAnalysisAccountAttr.CURRENCYFLUCT, new OceanusMoney(pReportingCurrency));
57 }
58
59
60
61
62
63
64
65 protected MoneyWiseAnalysisAccountValues(final MoneyWiseAnalysisAccountValues pSource,
66 final boolean pCountersOnly) {
67
68 super(pSource, pCountersOnly);
69 }
70
71 @Override
72 protected MoneyWiseAnalysisAccountValues getCounterSnapShot() {
73 return new MoneyWiseAnalysisAccountValues(this, true);
74 }
75
76 @Override
77 protected MoneyWiseAnalysisAccountValues getFullSnapShot() {
78 return new MoneyWiseAnalysisAccountValues(this, false);
79 }
80
81
82
83
84
85
86 public boolean isActive() {
87 final OceanusMoney myValuation = getMoneyValue(MoneyWiseAnalysisAccountAttr.VALUATION);
88 return myValuation != null && myValuation.isNonZero();
89 }
90
91 @Override
92 public void adjustToBaseValues(final MoneyWiseAnalysisAccountValues pBase) {
93
94 if (getMoneyValue(MoneyWiseAnalysisAccountAttr.CURRENCYFLUCT) != null) {
95
96 adjustMoneyToBase(pBase, MoneyWiseAnalysisAccountAttr.CURRENCYFLUCT);
97 }
98 }
99
100 @Override
101 public void resetBaseValues() {
102
103 OceanusMoney myValue = getMoneyValue(MoneyWiseAnalysisAccountAttr.CURRENCYFLUCT);
104 if (myValue != null) {
105
106 myValue = new OceanusMoney(myValue);
107 myValue.setZero();
108
109
110 super.setValue(MoneyWiseAnalysisAccountAttr.CURRENCYFLUCT, myValue);
111 }
112 }
113 }