1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.database;
18
19 import io.github.tonywasher.joceanus.oceanus.base.OceanusException;
20 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusMoney;
21 import io.github.tonywasher.joceanus.metis.data.MetisDataItem.MetisDataFieldId;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicDataType;
23 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicResource;
24 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseDataSet;
25 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseTransaction;
26 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataSet;
27 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataValues;
28 import io.github.tonywasher.joceanus.prometheus.database.PrometheusColumnDefinition;
29 import io.github.tonywasher.joceanus.prometheus.database.PrometheusDataStore;
30 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableDefinition;
31 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableDefinition.PrometheusSortOrder;
32 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableEncrypted;
33
34
35
36
37
38
39 public class MoneyWiseTableTransaction
40 extends PrometheusTableEncrypted<MoneyWiseTransaction> {
41
42
43
44 protected static final String TABLE_NAME = MoneyWiseTransaction.LIST_NAME;
45
46
47
48
49
50
51 protected MoneyWiseTableTransaction(final PrometheusDataStore pDatabase) {
52 super(pDatabase, TABLE_NAME);
53 final PrometheusTableDefinition myTableDef = getTableDef();
54
55
56 final PrometheusColumnDefinition myDateCol = myTableDef.addDateColumn(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE);
57 myTableDef.addBooleanColumn(MoneyWiseBasicResource.TRANSACTION_DIRECTION);
58 myTableDef.addLongColumn(MoneyWiseBasicResource.TRANSACTION_ACCOUNT);
59 myTableDef.addLongColumn(MoneyWiseBasicResource.TRANSACTION_PARTNER);
60 myTableDef.addNullEncryptedColumn(MoneyWiseBasicResource.TRANSACTION_AMOUNT, OceanusMoney.BYTE_LEN);
61 myTableDef.addReferenceColumn(MoneyWiseBasicDataType.TRANSCATEGORY, MoneyWiseTableTransCategory.TABLE_NAME);
62 myTableDef.addBooleanColumn(MoneyWiseBasicResource.TRANSACTION_RECONCILED);
63
64
65 myDateCol.setSortOrder(PrometheusSortOrder.ASCENDING);
66 }
67
68 @Override
69 protected void declareData(final PrometheusDataSet pData) {
70 final MoneyWiseDataSet myData = (MoneyWiseDataSet) pData;
71 setList(myData.getTransactions());
72 }
73
74
75 @Override
76 protected PrometheusDataValues loadValues() throws OceanusException {
77
78 final PrometheusTableDefinition myTableDef = getTableDef();
79
80
81 final PrometheusDataValues myValues = getRowValues(MoneyWiseTransaction.OBJECT_NAME);
82 myValues.addValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE, myTableDef.getDateValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE));
83 myValues.addValue(MoneyWiseBasicResource.TRANSACTION_DIRECTION, myTableDef.getBooleanValue(MoneyWiseBasicResource.TRANSACTION_DIRECTION));
84 myValues.addValue(MoneyWiseBasicDataType.TRANSCATEGORY, myTableDef.getIntegerValue(MoneyWiseBasicDataType.TRANSCATEGORY));
85 myValues.addValue(MoneyWiseBasicResource.TRANSACTION_ACCOUNT, myTableDef.getLongValue(MoneyWiseBasicResource.TRANSACTION_ACCOUNT));
86 myValues.addValue(MoneyWiseBasicResource.TRANSACTION_PARTNER, myTableDef.getLongValue(MoneyWiseBasicResource.TRANSACTION_PARTNER));
87 myValues.addValue(MoneyWiseBasicResource.TRANSACTION_AMOUNT, myTableDef.getBinaryValue(MoneyWiseBasicResource.TRANSACTION_AMOUNT));
88 myValues.addValue(MoneyWiseBasicResource.TRANSACTION_RECONCILED, myTableDef.getBooleanValue(MoneyWiseBasicResource.TRANSACTION_RECONCILED));
89
90
91 return myValues;
92 }
93
94 @Override
95 protected void setFieldValue(final MoneyWiseTransaction pItem,
96 final MetisDataFieldId iField) throws OceanusException {
97
98 final PrometheusTableDefinition myTableDef = getTableDef();
99 if (MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE.equals(iField)) {
100 myTableDef.setDateValue(iField, pItem.getDate());
101 } else if (MoneyWiseBasicResource.TRANSACTION_DIRECTION.equals(iField)) {
102 myTableDef.setBooleanValue(iField, pItem.getDirection().isFrom());
103 } else if (MoneyWiseBasicResource.TRANSACTION_AMOUNT.equals(iField)) {
104 myTableDef.setBinaryValue(iField, pItem.getAmountBytes());
105 } else if (MoneyWiseBasicResource.TRANSACTION_ACCOUNT.equals(iField)) {
106 myTableDef.setLongValue(iField, pItem.getAccountId());
107 } else if (MoneyWiseBasicResource.TRANSACTION_PARTNER.equals(iField)) {
108 myTableDef.setLongValue(iField, pItem.getPartnerId());
109 } else if (MoneyWiseBasicDataType.TRANSCATEGORY.equals(iField)) {
110 myTableDef.setIntegerValue(iField, pItem.getCategoryId());
111 } else if (MoneyWiseBasicResource.TRANSACTION_RECONCILED.equals(iField)) {
112 myTableDef.setBooleanValue(iField, pItem.isReconciled());
113 } else {
114 super.setFieldValue(pItem, iField);
115 }
116 }
117 }