1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.values;
18
19 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusMoney;
20 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusUnits;
21 import io.github.tonywasher.joceanus.moneywise.atlas.data.analysis.base.MoneyWiseXAnalysisValues;
22
23 import java.util.Currency;
24
25
26
27
28 public final class MoneyWiseXAnalysisSecurityValues
29 extends MoneyWiseXAnalysisValues<MoneyWiseXAnalysisSecurityValues, MoneyWiseXAnalysisSecurityAttr> {
30
31
32
33
34
35 public MoneyWiseXAnalysisSecurityValues(final Currency pCurrency) {
36 this(pCurrency, pCurrency);
37 }
38
39
40
41
42
43
44
45 public MoneyWiseXAnalysisSecurityValues(final Currency pCurrency,
46 final Currency pReportingCurrency) {
47
48 super(MoneyWiseXAnalysisSecurityAttr.class);
49
50
51 setValue(MoneyWiseXAnalysisSecurityAttr.UNITS, new OceanusUnits());
52 setValue(MoneyWiseXAnalysisSecurityAttr.VALUE, new OceanusMoney(pCurrency));
53 setValue(MoneyWiseXAnalysisSecurityAttr.VALUATION, new OceanusMoney(pReportingCurrency));
54 setValue(MoneyWiseXAnalysisSecurityAttr.RESIDUALCOST, new OceanusMoney(pReportingCurrency));
55 setValue(MoneyWiseXAnalysisSecurityAttr.REALISEDGAINS, new OceanusMoney(pReportingCurrency));
56 setValue(MoneyWiseXAnalysisSecurityAttr.UNREALISEDGAINS, new OceanusMoney(pReportingCurrency));
57 setValue(MoneyWiseXAnalysisSecurityAttr.GAINSADJUST, new OceanusMoney(pReportingCurrency));
58 setValue(MoneyWiseXAnalysisSecurityAttr.DIVIDEND, new OceanusMoney(pReportingCurrency));
59 setValue(MoneyWiseXAnalysisSecurityAttr.FUNDED, new OceanusMoney(pReportingCurrency));
60 }
61
62
63
64
65
66
67 public MoneyWiseXAnalysisSecurityValues(final MoneyWiseXAnalysisSecurityValues pSource) {
68
69 super(pSource);
70 }
71
72 @Override
73 protected MoneyWiseXAnalysisSecurityValues newSnapShot() {
74 return new MoneyWiseXAnalysisSecurityValues(this);
75 }
76
77 @Override
78 public void adjustToBaseValues(final MoneyWiseXAnalysisSecurityValues pBase) {
79
80 adjustMoneyToBase(pBase, MoneyWiseXAnalysisSecurityAttr.REALISEDGAINS);
81 adjustMoneyToBase(pBase, MoneyWiseXAnalysisSecurityAttr.UNREALISEDGAINS);
82 adjustMoneyToBase(pBase, MoneyWiseXAnalysisSecurityAttr.DIVIDEND);
83 }
84
85 @Override
86 public void resetBaseValues() {
87
88 OceanusMoney myValue = getMoneyValue(MoneyWiseXAnalysisSecurityAttr.RESIDUALCOST);
89 myValue = new OceanusMoney(myValue);
90 myValue.setZero();
91
92
93 setValue(MoneyWiseXAnalysisSecurityAttr.UNREALISEDGAINS, myValue);
94 setValue(MoneyWiseXAnalysisSecurityAttr.REALISEDGAINS, new OceanusMoney(myValue));
95 setValue(MoneyWiseXAnalysisSecurityAttr.DIVIDEND, new OceanusMoney(myValue));
96 }
97
98
99
100
101
102
103 public void setZeroMoney(final MoneyWiseXAnalysisSecurityAttr pAttr) {
104 OceanusMoney myValue = getMoneyValue(pAttr);
105 myValue = new OceanusMoney(myValue);
106 myValue.setZero();
107 setValue(pAttr, myValue);
108 }
109
110
111
112
113
114
115 public void setZeroUnits(final MoneyWiseXAnalysisSecurityAttr pAttr) {
116 setValue(pAttr, new OceanusUnits());
117 }
118
119
120
121
122
123
124 public boolean isActive() {
125 final OceanusUnits myUnits = getUnitsValue(MoneyWiseXAnalysisSecurityAttr.UNITS);
126 return myUnits != null && myUnits.isNonZero();
127 }
128 }