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.MoneyWiseDataSet;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseTransCategory;
23 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseStaticDataType;
24 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
25 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataResource;
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 MoneyWiseTableTransCategory
40 extends PrometheusTableEncrypted<MoneyWiseTransCategory> {
41
42
43
44 protected static final String TABLE_NAME = MoneyWiseTransCategory.LIST_NAME;
45
46
47
48
49
50
51 protected MoneyWiseTableTransCategory(final PrometheusDataStore pDatabase) {
52 super(pDatabase, TABLE_NAME);
53 final PrometheusTableDefinition myTableDef = getTableDef();
54
55
56 final PrometheusColumnDefinition myCatCol = myTableDef.addReferenceColumn(MoneyWiseStaticDataType.TRANSTYPE, MoneyWiseTableTransCategoryType.TABLE_NAME);
57 final PrometheusColumnDefinition myParentCol = myTableDef.addNullIntegerColumn(PrometheusDataResource.DATAGROUP_PARENT);
58 myTableDef.addEncryptedColumn(PrometheusDataResource.DATAITEM_FIELD_NAME, PrometheusDataItem.NAMELEN);
59 myTableDef.addNullEncryptedColumn(PrometheusDataResource.DATAITEM_FIELD_DESC, PrometheusDataItem.DESCLEN);
60
61
62 myParentCol.setSortOrder(PrometheusSortOrder.DESCENDING);
63 myCatCol.setSortOrder(PrometheusSortOrder.ASCENDING);
64 }
65
66 @Override
67 protected void declareData(final PrometheusDataSet pData) {
68 final MoneyWiseDataSet myData = (MoneyWiseDataSet) pData;
69 setList(myData.getTransCategories());
70 }
71
72 @Override
73 protected PrometheusDataValues loadValues() throws OceanusException {
74
75 final PrometheusTableDefinition myTableDef = getTableDef();
76
77
78 final PrometheusDataValues myValues = getRowValues(MoneyWiseTransCategory.OBJECT_NAME);
79 myValues.addValue(MoneyWiseStaticDataType.TRANSTYPE, myTableDef.getIntegerValue(MoneyWiseStaticDataType.TRANSTYPE));
80 myValues.addValue(PrometheusDataResource.DATAGROUP_PARENT, myTableDef.getIntegerValue(PrometheusDataResource.DATAGROUP_PARENT));
81 myValues.addValue(PrometheusDataResource.DATAITEM_FIELD_NAME, myTableDef.getBinaryValue(PrometheusDataResource.DATAITEM_FIELD_NAME));
82 myValues.addValue(PrometheusDataResource.DATAITEM_FIELD_DESC, myTableDef.getBinaryValue(PrometheusDataResource.DATAITEM_FIELD_DESC));
83
84
85 return myValues;
86 }
87
88 @Override
89 protected void setFieldValue(final MoneyWiseTransCategory pItem,
90 final MetisDataFieldId iField) throws OceanusException {
91
92 final PrometheusTableDefinition myTableDef = getTableDef();
93 if (MoneyWiseStaticDataType.TRANSTYPE.equals(iField)) {
94 myTableDef.setIntegerValue(iField, pItem.getCategoryTypeId());
95 } else if (PrometheusDataResource.DATAGROUP_PARENT.equals(iField)) {
96 myTableDef.setIntegerValue(iField, pItem.getParentCategoryId());
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 {
102 super.setFieldValue(pItem, iField);
103 }
104 }
105 }