1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.prometheus.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.prometheus.data.PrometheusControlKey;
22 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataResource;
23 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataSet;
24 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataValues;
25
26
27
28
29 public class PrometheusTableControlKeys
30 extends PrometheusTableDataItem<PrometheusControlKey> {
31
32
33
34 protected static final String TABLE_NAME = PrometheusControlKey.LIST_NAME;
35
36
37
38
39
40
41 protected PrometheusTableControlKeys(final PrometheusDataStore pDatabase) {
42 super(pDatabase, TABLE_NAME);
43 final PrometheusTableDefinition myTableDef = getTableDef();
44
45
46 myTableDef.addDateColumn(PrometheusDataResource.CONTROLKEY_CREATION);
47 myTableDef.addBinaryColumn(PrometheusDataResource.CONTROLKEY_LOCKBYTES, PrometheusControlKey.LOCKLEN);
48 }
49
50 @Override
51 protected void declareData(final PrometheusDataSet pData) {
52 setList(pData.getControlKeys());
53 }
54
55 @Override
56 protected PrometheusDataValues loadValues() throws OceanusException {
57
58 final PrometheusTableDefinition myTableDef = getTableDef();
59
60
61 final PrometheusDataValues myValues = getRowValues(PrometheusControlKey.OBJECT_NAME);
62 myValues.addValue(PrometheusDataResource.CONTROLKEY_CREATION, myTableDef.getDateValue(PrometheusDataResource.CONTROLKEY_CREATION));
63 myValues.addValue(PrometheusDataResource.CONTROLKEY_LOCKBYTES, myTableDef.getBinaryValue(PrometheusDataResource.CONTROLKEY_LOCKBYTES));
64
65
66 return myValues;
67 }
68
69 @Override
70 protected void setFieldValue(final PrometheusControlKey pItem,
71 final MetisDataFieldId iField) throws OceanusException {
72
73 final PrometheusTableDefinition myTableDef = getTableDef();
74 if (PrometheusDataResource.CONTROLKEY_CREATION.equals(iField)) {
75 myTableDef.setDateValue(iField, pItem.getCreationDate());
76 } else if (PrometheusDataResource.CONTROLKEY_LOCKBYTES.equals(iField)) {
77 myTableDef.setBinaryValue(iField, pItem.getLockBytes());
78 } else {
79 super.setFieldValue(pItem, iField);
80 }
81 }
82 }