@@ -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