in library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/format/converter/aws2/ddb/Ddb2JsonInputType.java [184:233]
private static AttributeValue getAttributeValue(Object value) {
if (value == null) {
return AttributeValue.builder().nul(true).build();
}
if (value instanceof String) {
return AttributeValue.builder().s(value.toString()).build();
}
if (value instanceof Integer) {
return AttributeValue.builder().n(value.toString()).build();
}
if (value instanceof Boolean) {
return AttributeValue.builder().bool((Boolean) value).build();
}
if (value instanceof String[]) {
return AttributeValue.builder().ss((String[]) value).build();
}
if (value instanceof int[]) {
return AttributeValue.builder().ns(Stream.of((int[]) value).map(Object::toString).collect(Collectors.toList()))
.build();
}
if (value instanceof List) {
List<?> values = (List<?>) value;
if (values.isEmpty()) {
return AttributeValue.builder().ss().build();
} else if (values.get(0) instanceof Integer) {
return AttributeValue.builder().ns(values.stream().map(Object::toString).collect(Collectors.toList())).build();
} else {
return AttributeValue.builder().ss(values.stream().map(Object::toString).collect(Collectors.toList())).build();
}
}
if (value instanceof Map) {
Map<String, AttributeValue> nestedAttributes = new LinkedHashMap<>();
for (Map.Entry<?, ?> nested : ((Map<?, ?>) value).entrySet()) {
nestedAttributes.put(nested.getKey().toString(), getAttributeValue(nested.getValue()));
}
return AttributeValue.builder().m(nestedAttributes).build();
}
return AttributeValue.builder().s(value.toString()).build();
}