});
}
@Override
public String determineTypeFor(String formatType, Object o) {
EJValue jsonValue = (EJValue) o;
if (jsonValue.isObject() != null) {
EJObject jsonObject = jsonValue.isObject();
if (jsonObject.containsKey(SerializationParts.ENCODED_TYPE)) {
return jsonObject.get(SerializationParts.ENCODED_TYPE).isString().stringValue();
}
else {
return Map.class.getName();
}
}
else if (jsonValue.isString() != null) {
return String.class.getName();
}
else if (jsonValue.isNumber() != null) {
return Double.class.getName();
}
else if (jsonValue.isBoolean() != null) {
return Boolean.class.getName();
}
else if (jsonValue.isArray() != null) {
return List.class.getName();
}
else if (jsonValue.isNull()) {
return null;
}
throw new RuntimeException("unknown type: cannot reverse map value to concrete Java type: " + o);
}