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.thread.TethysUIThreadStatusReport;
24
25
26
27
28
29
30 public class MoneyWiseWriter
31 extends PrometheusSheetWriter {
32
33
34
35
36
37 public MoneyWiseWriter(final TethysUIThreadStatusReport pReport) {
38
39 super(pReport);
40 }
41
42
43
44
45 @Override
46 protected void registerSheets() {
47
48 for (MoneyWiseStaticDataType myType : MoneyWiseStaticDataType.values()) {
49
50 addSheet(newSheet(myType));
51 }
52
53
54 for (MoneyWiseBasicDataType myType : MoneyWiseBasicDataType.values()) {
55
56 addSheet(newSheet(myType));
57 }
58 }
59
60
61
62
63
64
65
66 private PrometheusSheetDataItem<?> newSheet(final MoneyWiseStaticDataType pDataType) {
67
68 return switch (pDataType) {
69 case DEPOSITTYPE -> new MoneyWiseSheetDepositCategoryType(this);
70 case CASHTYPE -> new MoneyWiseSheetCashCategoryType(this);
71 case LOANTYPE -> new MoneyWiseSheetLoanCategoryType(this);
72 case PORTFOLIOTYPE -> new MoneyWiseSheetPortfolioType(this);
73 case PAYEETYPE -> new MoneyWiseSheetPayeeType(this);
74 case SECURITYTYPE -> new MoneyWiseSheetSecurityType(this);
75 case TRANSTYPE -> new MoneyWiseSheetTransCategoryType(this);
76 case ACCOUNTINFOTYPE -> new MoneyWiseSheetAccountInfoType(this);
77 case TRANSINFOTYPE -> new MoneyWiseSheetTransInfoType(this);
78 case CURRENCY -> new MoneyWiseSheetCurrency(this);
79 case TAXBASIS -> new MoneyWiseSheetTaxBasis(this);
80 default -> throw new IllegalArgumentException(pDataType.toString());
81 };
82 }
83
84
85
86
87
88
89
90 private PrometheusSheetDataItem<?> newSheet(final MoneyWiseBasicDataType pDataType) {
91
92 return switch (pDataType) {
93 case TRANSTAG -> new MoneyWiseSheetTransTag(this);
94 case REGION -> new MoneyWiseSheetRegion(this);
95 case DEPOSITCATEGORY -> new MoneyWiseSheetDepositCategory(this);
96 case CASHCATEGORY -> new MoneyWiseSheetCashCategory(this);
97 case LOANCATEGORY -> new MoneyWiseSheetLoanCategory(this);
98 case TRANSCATEGORY -> new MoneyWiseSheetTransCategory(this);
99 case EXCHANGERATE -> new MoneyWiseSheetExchangeRate(this);
100 case PAYEE -> new MoneyWiseSheetPayee(this);
101 case PAYEEINFO -> new MoneyWiseSheetPayeeInfo(this);
102 case SECURITY -> new MoneyWiseSheetSecurity(this);
103 case SECURITYPRICE -> new MoneyWiseSheetSecurityPrice(this);
104 case SECURITYINFO -> new MoneyWiseSheetSecurityInfo(this);
105 case DEPOSIT -> new MoneyWiseSheetDeposit(this);
106 case DEPOSITRATE -> new MoneyWiseSheetDepositRate(this);
107 case DEPOSITINFO -> new MoneyWiseSheetDepositInfo(this);
108 case CASH -> new MoneyWiseSheetCash(this);
109 case CASHINFO -> new MoneyWiseSheetCashInfo(this);
110 case LOAN -> new MoneyWiseSheetLoan(this);
111 case LOANINFO -> new MoneyWiseSheetLoanInfo(this);
112 case PORTFOLIO -> new MoneyWiseSheetPortfolio(this);
113 case PORTFOLIOINFO -> new MoneyWiseSheetPortfolioInfo(this);
114 case TRANSACTION -> new MoneyWiseSheetTransaction(this);
115 case TRANSACTIONINFO -> new MoneyWiseSheetTransInfo(this);
116 default -> throw new IllegalArgumentException(pDataType.toString());
117 };
118 }
119 }