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.MoneyWiseSecurityPrice;
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 MoneyWiseTableSecurityPrice
40 extends PrometheusTableEncrypted<MoneyWiseSecurityPrice> {
41
42
43
44 protected static final String TABLE_NAME = MoneyWiseSecurityPrice.LIST_NAME;
45
46
47
48
49
50
51 protected MoneyWiseTableSecurityPrice(final PrometheusDataStore pDatabase) {
52 super(pDatabase, TABLE_NAME);
53 final PrometheusTableDefinition myTableDef = getTableDef();
54
55
56 final PrometheusColumnDefinition myActCol = myTableDef.addReferenceColumn(MoneyWiseBasicDataType.SECURITY, MoneyWiseTableSecurity.TABLE_NAME);
57 final PrometheusColumnDefinition myDateCol = myTableDef.addDateColumn(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE);
58 myTableDef.addEncryptedColumn(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_PRICE, OceanusMoney.BYTE_LEN);
59
60
61 myDateCol.setSortOrder(PrometheusSortOrder.DESCENDING);
62 myActCol.setSortOrder(PrometheusSortOrder.ASCENDING);
63 }
64
65 @Override
66 protected void declareData(final PrometheusDataSet pData) {
67 final MoneyWiseDataSet myData = (MoneyWiseDataSet) pData;
68 setList(myData.getSecurityPrices());
69 }
70
71 @Override
72 protected PrometheusDataValues loadValues() throws OceanusException {
73
74 final PrometheusTableDefinition myTableDef = getTableDef();
75
76
77 final PrometheusDataValues myValues = getRowValues(MoneyWiseSecurityPrice.OBJECT_NAME);
78 myValues.addValue(MoneyWiseBasicDataType.SECURITY, myTableDef.getIntegerValue(MoneyWiseBasicDataType.SECURITY));
79 myValues.addValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE, myTableDef.getDateValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE));
80 myValues.addValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_PRICE, myTableDef.getBinaryValue(MoneyWiseBasicResource.MONEYWISEDATA_FIELD_PRICE));
81
82
83 return myValues;
84 }
85
86 @Override
87 protected void setFieldValue(final MoneyWiseSecurityPrice pItem,
88 final MetisDataFieldId iField) throws OceanusException {
89
90 final PrometheusTableDefinition myTableDef = getTableDef();
91 if (MoneyWiseBasicDataType.SECURITY.equals(iField)) {
92 myTableDef.setIntegerValue(iField, pItem.getSecurityId());
93 } else if (MoneyWiseBasicResource.MONEYWISEDATA_FIELD_DATE.equals(iField)) {
94 myTableDef.setDateValue(iField, pItem.getDate());
95 } else if (MoneyWiseBasicResource.MONEYWISEDATA_FIELD_PRICE.equals(iField)) {
96 myTableDef.setBinaryValue(iField, pItem.getPriceBytes());
97 } else {
98 super.setFieldValue(pItem, iField);
99 }
100 }
101 }