1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.sheets;
18
19 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicDataType;
20 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseStaticDataType;
21 import io.github.tonywasher.joceanus.prometheus.sheets.PrometheusSheetDataItem;
22 import io.github.tonywasher.joceanus.prometheus.sheets.PrometheusSheetWriter;
23 import io.github.tonywasher.joceanus.tethys.api.factory.TethysUIFactory;
24 import io.github.tonywasher.joceanus.tethys.api.thread.TethysUIThreadStatusReport;
25
26
27
28
29
30
31 public class MoneyWiseWriter
32 extends PrometheusSheetWriter {
33
34
35
36
37
38
39 public MoneyWiseWriter(final TethysUIFactory<?> pFactory,
40 final TethysUIThreadStatusReport pReport) {
41
42 super(pFactory, pReport);
43 }
44
45
46
47
48 @Override
49 protected void registerSheets() {
50
51 for (MoneyWiseStaticDataType myType : MoneyWiseStaticDataType.values()) {
52
53 addSheet(newSheet(myType));
54 }
55
56
57 for (MoneyWiseBasicDataType myType : MoneyWiseBasicDataType.values()) {
58
59 addSheet(newSheet(myType));
60 }
61 }
62
63
64
65
66
67
68
69 private PrometheusSheetDataItem<?> newSheet(final MoneyWiseStaticDataType pDataType) {
70
71 switch (pDataType) {
72 case DEPOSITTYPE:
73 return new MoneyWiseSheetDepositCategoryType(this);
74 case CASHTYPE:
75 return new MoneyWiseSheetCashCategoryType(this);
76 case LOANTYPE:
77 return new MoneyWiseSheetLoanCategoryType(this);
78 case PORTFOLIOTYPE:
79 return new MoneyWiseSheetPortfolioType(this);
80 case PAYEETYPE:
81 return new MoneyWiseSheetPayeeType(this);
82 case SECURITYTYPE:
83 return new MoneyWiseSheetSecurityType(this);
84 case TRANSTYPE:
85 return new MoneyWiseSheetTransCategoryType(this);
86 case ACCOUNTINFOTYPE:
87 return new MoneyWiseSheetAccountInfoType(this);
88 case TRANSINFOTYPE:
89 return new MoneyWiseSheetTransInfoType(this);
90 case CURRENCY:
91 return new MoneyWiseSheetCurrency(this);
92 case TAXBASIS:
93 return new MoneyWiseSheetTaxBasis(this);
94 default:
95 throw new IllegalArgumentException(pDataType.toString());
96 }
97 }
98
99
100
101
102
103
104
105 private PrometheusSheetDataItem<?> newSheet(final MoneyWiseBasicDataType pDataType) {
106
107 switch (pDataType) {
108 case TRANSTAG:
109 return new MoneyWiseSheetTransTag(this);
110 case REGION:
111 return new MoneyWiseSheetRegion(this);
112 case DEPOSITCATEGORY:
113 return new MoneyWiseSheetDepositCategory(this);
114 case CASHCATEGORY:
115 return new MoneyWiseSheetCashCategory(this);
116 case LOANCATEGORY:
117 return new MoneyWiseSheetLoanCategory(this);
118 case TRANSCATEGORY:
119 return new MoneyWiseSheetTransCategory(this);
120 case EXCHANGERATE:
121 return new MoneyWiseSheetExchangeRate(this);
122 case PAYEE:
123 return new MoneyWiseSheetPayee(this);
124 case PAYEEINFO:
125 return new MoneyWiseSheetPayeeInfo(this);
126 case SECURITY:
127 return new MoneyWiseSheetSecurity(this);
128 case SECURITYPRICE:
129 return new MoneyWiseSheetSecurityPrice(this);
130 case SECURITYINFO:
131 return new MoneyWiseSheetSecurityInfo(this);
132 case DEPOSIT:
133 return new MoneyWiseSheetDeposit(this);
134 case DEPOSITRATE:
135 return new MoneyWiseSheetDepositRate(this);
136 case DEPOSITINFO:
137 return new MoneyWiseSheetDepositInfo(this);
138 case CASH:
139 return new MoneyWiseSheetCash(this);
140 case CASHINFO:
141 return new MoneyWiseSheetCashInfo(this);
142 case LOAN:
143 return new MoneyWiseSheetLoan(this);
144 case LOANINFO:
145 return new MoneyWiseSheetLoanInfo(this);
146 case PORTFOLIO:
147 return new MoneyWiseSheetPortfolio(this);
148 case PORTFOLIOINFO:
149 return new MoneyWiseSheetPortfolioInfo(this);
150 case TRANSACTION:
151 return new MoneyWiseSheetTransaction(this);
152 case TRANSACTIONINFO:
153 return new MoneyWiseSheetTransInfo(this);
154 default:
155 throw new IllegalArgumentException(pDataType.toString());
156 }
157 }
158 }