1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.prometheus.maps;
18
19 import io.github.tonywasher.joceanus.oceanus.format.OceanusDataFormatter;
20 import io.github.tonywasher.joceanus.metis.field.MetisFieldItem;
21 import io.github.tonywasher.joceanus.metis.field.MetisFieldSet;
22 import io.github.tonywasher.joceanus.prometheus.data.PrometheusDataItem;
23
24 import java.util.ArrayList;
25 import java.util.List;
26
27
28
29
30 public interface PrometheusMapsInstanceElement
31 extends MetisFieldItem {
32
33
34
35
36
37 List<PrometheusDataItem> getList();
38
39
40
41
42 class PrometheusMapsInstanceElementItem
43 implements PrometheusMapsInstanceElement {
44
45
46
47 private static final MetisFieldSet<PrometheusMapsInstanceElementItem> FIELD_DEFS
48 = MetisFieldSet.newFieldSet(PrometheusMapsInstanceElementItem.class);
49
50
51
52
53 static {
54 FIELD_DEFS.declareLocalField(PrometheusMapsResource.MAPS_ITEM, PrometheusMapsInstanceElementItem::getItem);
55 }
56
57
58
59
60 private final PrometheusDataItem theItem;
61
62
63
64
65
66
67 PrometheusMapsInstanceElementItem(final PrometheusDataItem pItem) {
68 theItem = pItem;
69 }
70
71 @Override
72 public MetisFieldSetDef getDataFieldSet() {
73 return FIELD_DEFS;
74 }
75
76 @Override
77 public String formatObject(final OceanusDataFormatter pFormatter) {
78 return pFormatter.formatObject(theItem);
79 }
80
81
82
83
84
85
86 PrometheusDataItem getItem() {
87 return theItem;
88 }
89
90 @Override
91 public List<PrometheusDataItem> getList() {
92
93 final List<PrometheusDataItem> myList = new ArrayList<>();
94 myList.add(theItem);
95 return myList;
96 }
97 }
98
99
100
101
102 class PrometheusMapsInstanceElementList
103 implements PrometheusMapsInstanceElement {
104
105
106
107 private static final MetisFieldSet<PrometheusMapsInstanceElementList> FIELD_DEFS
108 = MetisFieldSet.newFieldSet(PrometheusMapsInstanceElementList.class);
109
110
111
112
113 static {
114 FIELD_DEFS.declareLocalField(PrometheusMapsResource.MAPS_ITEMLIST, PrometheusMapsInstanceElementList::getList);
115 }
116
117
118
119
120 private final List<PrometheusDataItem> theList;
121
122
123
124
125
126
127
128 PrometheusMapsInstanceElementList(final PrometheusMapsInstanceElement pPrevious,
129 final PrometheusDataItem pItem) {
130
131 theList = new ArrayList<>(pPrevious.getList());
132 theList.add(pItem);
133 }
134
135 @Override
136 public MetisFieldSetDef getDataFieldSet() {
137 return FIELD_DEFS;
138 }
139
140 @Override
141 public String formatObject(final OceanusDataFormatter pFormatter) {
142 return PrometheusMapsInstanceElementList.class.getSimpleName();
143 }
144
145 @Override
146 public List<PrometheusDataItem> getList() {
147 return theList;
148 }
149 }
150 }