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.security.PrometheusSecurityPasswordManager;
22 import io.github.tonywasher.joceanus.prometheus.sheets.PrometheusSheetDataItem;
23 import io.github.tonywasher.joceanus.prometheus.sheets.PrometheusSheetReader;
24 import io.github.tonywasher.joceanus.tethys.api.thread.TethysUIThreadStatusReport;
25
26
27
28
29
30
31 public class MoneyWiseReader
32 extends PrometheusSheetReader {
33
34
35
36
37
38
39 public MoneyWiseReader(final TethysUIThreadStatusReport pReport,
40 final PrometheusSecurityPasswordManager pPasswordMgr) {
41
42 super(pReport, pPasswordMgr);
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 return switch (pDataType) {
72 case DEPOSITTYPE -> new MoneyWiseSheetDepositCategoryType(this);
73 case CASHTYPE -> new MoneyWiseSheetCashCategoryType(this);
74 case LOANTYPE -> new MoneyWiseSheetLoanCategoryType(this);
75 case PORTFOLIOTYPE -> new MoneyWiseSheetPortfolioType(this);
76 case PAYEETYPE -> new MoneyWiseSheetPayeeType(this);
77 case SECURITYTYPE -> new MoneyWiseSheetSecurityType(this);
78 case TRANSTYPE -> new MoneyWiseSheetTransCategoryType(this);
79 case ACCOUNTINFOTYPE -> new MoneyWiseSheetAccountInfoType(this);
80 case TRANSINFOTYPE -> new MoneyWiseSheetTransInfoType(this);
81 case CURRENCY -> new MoneyWiseSheetCurrency(this);
82 case TAXBASIS -> new MoneyWiseSheetTaxBasis(this);
83 default -> throw new IllegalArgumentException(pDataType.toString());
84 };
85 }
86
87
88
89
90
91
92
93 private PrometheusSheetDataItem<?> newSheet(final MoneyWiseBasicDataType pDataType) {
94
95 return switch (pDataType) {
96 case TRANSTAG -> new MoneyWiseSheetTransTag(this);
97 case REGION -> new MoneyWiseSheetRegion(this);
98 case DEPOSITCATEGORY -> new MoneyWiseSheetDepositCategory(this);
99 case CASHCATEGORY -> new MoneyWiseSheetCashCategory(this);
100 case LOANCATEGORY -> new MoneyWiseSheetLoanCategory(this);
101 case TRANSCATEGORY -> new MoneyWiseSheetTransCategory(this);
102 case EXCHANGERATE -> new MoneyWiseSheetExchangeRate(this);
103 case PAYEE -> new MoneyWiseSheetPayee(this);
104 case PAYEEINFO -> new MoneyWiseSheetPayeeInfo(this);
105 case SECURITY -> new MoneyWiseSheetSecurity(this);
106 case SECURITYPRICE -> new MoneyWiseSheetSecurityPrice(this);
107 case SECURITYINFO -> new MoneyWiseSheetSecurityInfo(this);
108 case DEPOSIT -> new MoneyWiseSheetDeposit(this);
109 case DEPOSITRATE -> new MoneyWiseSheetDepositRate(this);
110 case DEPOSITINFO -> new MoneyWiseSheetDepositInfo(this);
111 case CASH -> new MoneyWiseSheetCash(this);
112 case CASHINFO -> new MoneyWiseSheetCashInfo(this);
113 case LOAN -> new MoneyWiseSheetLoan(this);
114 case LOANINFO -> new MoneyWiseSheetLoanInfo(this);
115 case PORTFOLIO -> new MoneyWiseSheetPortfolio(this);
116 case PORTFOLIOINFO -> new MoneyWiseSheetPortfolioInfo(this);
117 case TRANSACTION -> new MoneyWiseSheetTransaction(this);
118 case TRANSACTIONINFO -> new MoneyWiseSheetTransInfo(this);
119 default -> throw new IllegalArgumentException(pDataType.toString());
120 };
121 }
122 }