Skip to content

Commit 575535d

Browse files
committed
simplify putValue implementation
1 parent 4386c8c commit 575535d

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

api/incubator/src/main/java/io/opentelemetry/api/incubator/common/ArrayBackedExtendedAttributesBuilder.java

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,24 @@ public <T> ExtendedAttributesBuilder put(ExtendedAttributeKey<T> key, T value) {
5656
return this;
5757
}
5858

59+
@SuppressWarnings("unchecked")
5960
private void putValue(ExtendedAttributeKey<?> key, Value<?> valueObj) {
6061
// Convert VALUE type to narrower type when possible
6162
String keyName = key.getKey();
6263
switch (valueObj.getType()) {
6364
case STRING:
64-
data.add(stringKey(keyName));
65-
data.add(valueObj.getValue());
65+
put(stringKey(keyName), ((Value<String>) valueObj).getValue());
6666
return;
6767
case LONG:
68-
data.add(longKey(keyName));
69-
data.add(valueObj.getValue());
68+
put(longKey(keyName), ((Value<Long>) valueObj).getValue());
7069
return;
7170
case DOUBLE:
72-
data.add(doubleKey(keyName));
73-
data.add(valueObj.getValue());
71+
put(doubleKey(keyName), ((Value<Double>) valueObj).getValue());
7472
return;
7573
case BOOLEAN:
76-
data.add(booleanKey(keyName));
77-
data.add(valueObj.getValue());
74+
put(booleanKey(keyName), ((Value<Boolean>) valueObj).getValue());
7875
return;
7976
case ARRAY:
80-
@SuppressWarnings("unchecked")
8177
List<Value<?>> arrayValues = (List<Value<?>>) valueObj.getValue();
8278
ExtendedAttributeType attributeType = attributeType(arrayValues);
8379
switch (attributeType) {
@@ -86,32 +82,28 @@ private void putValue(ExtendedAttributeKey<?> key, Value<?> valueObj) {
8682
for (Value<?> v : arrayValues) {
8783
strings.add((String) v.getValue());
8884
}
89-
data.add(stringArrayKey(keyName));
90-
data.add(strings);
85+
put(stringArrayKey(keyName), strings);
9186
return;
9287
case LONG_ARRAY:
9388
List<Long> longs = new ArrayList<>();
9489
for (Value<?> v : arrayValues) {
9590
longs.add((Long) v.getValue());
9691
}
97-
data.add(longArrayKey(keyName));
98-
data.add(longs);
92+
put(longArrayKey(keyName), longs);
9993
return;
10094
case DOUBLE_ARRAY:
10195
List<Double> doubles = new ArrayList<>();
10296
for (Value<?> v : arrayValues) {
10397
doubles.add((Double) v.getValue());
10498
}
105-
data.add(doubleArrayKey(keyName));
106-
data.add(doubles);
99+
put(doubleArrayKey(keyName), doubles);
107100
return;
108101
case BOOLEAN_ARRAY:
109102
List<Boolean> booleans = new ArrayList<>();
110103
for (Value<?> v : arrayValues) {
111104
booleans.add((Boolean) v.getValue());
112105
}
113-
data.add(booleanArrayKey(keyName));
114-
data.add(booleans);
106+
put(booleanArrayKey(keyName), booleans);
115107
return;
116108
case VALUE:
117109
// Not coercible (empty, non-homogeneous, or unsupported element type)

0 commit comments

Comments
 (0)