1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.data.basic;
18
19 import io.github.tonywasher.joceanus.metis.data.MetisDataFieldValue;
20 import io.github.tonywasher.joceanus.metis.data.MetisDataItem.MetisDataFieldId;
21 import io.github.tonywasher.joceanus.metis.field.MetisFieldSet;
22 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWisePayeeInfo.MoneyWisePayeeInfoList;
23 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseAccountInfoClass;
24 import io.github.tonywasher.joceanus.moneywise.data.statics.MoneyWiseAccountInfoType.MoneyWiseAccountInfoTypeList;
25 import io.github.tonywasher.joceanus.oceanus.base.OceanusException;
26 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataInfoClass;
27 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataInfoSet;
28 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
29 import io.github.tonywasher.joceanus.prometheus.views.PrometheusEditSet;
30
31 import java.util.Arrays;
32 import java.util.Iterator;
33 import java.util.Map;
34
35
36
37
38
39
40 public class MoneyWisePayeeInfoSet
41 extends PrometheusDataInfoSet<MoneyWisePayeeInfo> {
42
43
44
45 private static final MetisFieldSet<MoneyWisePayeeInfoSet> FIELD_DEFS = MetisFieldSet.newFieldSet(MoneyWisePayeeInfoSet.class);
46
47
48
49
50 private static final Map<MetisDataFieldId, MoneyWiseAccountInfoClass> FIELDSET_MAP = FIELD_DEFS.buildFieldMap(MoneyWiseAccountInfoClass.class, MoneyWisePayeeInfoSet::getFieldValue);
51
52
53
54
55 private static final Map<MoneyWiseAccountInfoClass, MetisDataFieldId> REVERSE_FIELDMAP = MetisFieldSet.reverseFieldMap(FIELDSET_MAP, MoneyWiseAccountInfoClass.class);
56
57
58
59
60
61
62
63
64 protected MoneyWisePayeeInfoSet(final PrometheusDataItem pOwner,
65 final MoneyWiseAccountInfoTypeList pTypeList,
66 final MoneyWisePayeeInfoList pInfoList) {
67
68 super(pOwner, pTypeList, pInfoList);
69 }
70
71 @Override
72 public MetisFieldSetDef getDataFieldSet() {
73 return FIELD_DEFS;
74 }
75
76
77
78
79
80
81
82 public Object getFieldValue(final MetisDataFieldId pFieldId) {
83
84 final MoneyWiseAccountInfoClass myClass = getClassForField(pFieldId);
85 if (myClass != null) {
86 return getInfoSetValue(myClass);
87 }
88
89
90 return null;
91 }
92
93
94
95
96
97
98
99 private Object getInfoSetValue(final MoneyWiseAccountInfoClass pInfoClass) {
100
101 final Object myValue = getField(pInfoClass);
102 return myValue != null
103 ? myValue
104 : MetisDataFieldValue.SKIP;
105 }
106
107
108
109
110
111
112
113 public static MoneyWiseAccountInfoClass getClassForField(final MetisDataFieldId pField) {
114
115 return FIELDSET_MAP.get(pField);
116 }
117
118
119
120
121
122
123
124 public static MetisDataFieldId getFieldForClass(final MoneyWiseAccountInfoClass pClass) {
125
126 return REVERSE_FIELDMAP.get(pClass);
127 }
128
129 @Override
130 public MetisDataFieldId getFieldForClass(final PrometheusDataInfoClass pClass) {
131 return getFieldForClass((MoneyWiseAccountInfoClass) pClass);
132 }
133
134 @Override
135 public Iterator<PrometheusDataInfoClass> classIterator() {
136 final PrometheusDataInfoClass[] myValues = MoneyWiseAccountInfoClass.values();
137 return Arrays.stream(myValues).iterator();
138 }
139
140
141
142
143
144
145 protected void cloneDataInfoSet(final MoneyWisePayeeInfoSet pSource) {
146
147 cloneTheDataInfoSet(pSource);
148 }
149
150
151
152
153
154
155
156 void resolveEditSetLinks(final PrometheusEditSet pEditSet) throws OceanusException {
157
158 for (MoneyWisePayeeInfo myInfo : this) {
159 myInfo.resolveEditSetLinks(pEditSet);
160 }
161 }
162 }