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.metis.data.MetisDataItem.MetisDataFieldId;
21 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseBasicResource;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseCash;
23 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseDataSet;
24 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseStaticDataType;
25 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
26 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataResource;
27 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataSet;
28 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataValues;
29 import io.github.tonywasher.joceanus.prometheus.database.PrometheusColumnDefinition;
30 import io.github.tonywasher.joceanus.prometheus.database.PrometheusDataStore;
31 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableDefinition;
32 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableDefinition.PrometheusSortOrder;
33 import io.github.tonywasher.joceanus.prometheus.database.PrometheusTableEncrypted;
34
35
36
37
38 public class MoneyWiseTableCash
39 extends PrometheusTableEncrypted<MoneyWiseCash> {
40
41
42
43 protected static final String TABLE_NAME = MoneyWiseCash.LIST_NAME;
44
45
46
47
48
49
50 protected MoneyWiseTableCash(final PrometheusDataStore pDatabase) {
51 super(pDatabase, TABLE_NAME);
52 final PrometheusTableDefinition myTableDef = getTableDef();
53
54
55 final PrometheusColumnDefinition myCatCol = myTableDef.addReferenceColumn(MoneyWiseBasicResource.CATEGORY_NAME, MoneyWiseTableCashCategory.TABLE_NAME);
56 myTableDef.addReferenceColumn(MoneyWiseStaticDataType.CURRENCY, MoneyWiseTableCurrency.TABLE_NAME);
57 myTableDef.addEncryptedColumn(PrometheusDataResource.DATAITEM_FIELD_NAME, PrometheusDataItem.NAMELEN);
58 myTableDef.addNullEncryptedColumn(PrometheusDataResource.DATAITEM_FIELD_DESC, PrometheusDataItem.DESCLEN);
59 myTableDef.addBooleanColumn(MoneyWiseBasicResource.ASSET_CLOSED);
60
61
62 myCatCol.setSortOrder(PrometheusSortOrder.ASCENDING);
63 }
64
65 @Override
66 protected void declareData(final PrometheusDataSet pData) {
67 final MoneyWiseDataSet myData = (MoneyWiseDataSet) pData;
68 setList(myData.getCash());
69 }
70
71 @Override
72 protected PrometheusDataValues loadValues() throws OceanusException {
73
74 final PrometheusTableDefinition myTableDef = getTableDef();
75
76
77 final PrometheusDataValues myValues = getRowValues(MoneyWiseCash.OBJECT_NAME);
78 myValues.addValue(PrometheusDataResource.DATAITEM_FIELD_NAME, myTableDef.getBinaryValue(PrometheusDataResource.DATAITEM_FIELD_NAME));
79 myValues.addValue(PrometheusDataResource.DATAITEM_FIELD_DESC, myTableDef.getBinaryValue(PrometheusDataResource.DATAITEM_FIELD_DESC));
80 myValues.addValue(MoneyWiseBasicResource.CATEGORY_NAME, myTableDef.getIntegerValue(MoneyWiseBasicResource.CATEGORY_NAME));
81 myValues.addValue(MoneyWiseStaticDataType.CURRENCY, myTableDef.getIntegerValue(MoneyWiseStaticDataType.CURRENCY));
82 myValues.addValue(MoneyWiseBasicResource.ASSET_CLOSED, myTableDef.getBooleanValue(MoneyWiseBasicResource.ASSET_CLOSED));
83
84
85 return myValues;
86 }
87
88 @Override
89 protected void setFieldValue(final MoneyWiseCash pItem,
90 final MetisDataFieldId iField) throws OceanusException {
91
92 final PrometheusTableDefinition myTableDef = getTableDef();
93 if (MoneyWiseBasicResource.CATEGORY_NAME.equals(iField)) {
94 myTableDef.setIntegerValue(iField, pItem.getCategoryId());
95 } else if (MoneyWiseStaticDataType.CURRENCY.equals(iField)) {
96 myTableDef.setIntegerValue(iField, pItem.getAssetCurrencyId());
97 } else if (PrometheusDataResource.DATAITEM_FIELD_NAME.equals(iField)) {
98 myTableDef.setBinaryValue(iField, pItem.getNameBytes());
99 } else if (PrometheusDataResource.DATAITEM_FIELD_DESC.equals(iField)) {
100 myTableDef.setBinaryValue(iField, pItem.getDescBytes());
101 } else if (MoneyWiseBasicResource.ASSET_CLOSED.equals(iField)) {
102 myTableDef.setBooleanValue(iField, pItem.isClosed());
103 } else {
104 super.setFieldValue(pItem, iField);
105 }
106 }
107 }