super(context);
}
@Override
public String determineTypeFor(final String formatType, final Object o) {
final EJValue jsonValue = (EJValue) o;
if (jsonValue.isObject() != null) {
final 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;
}
else {
return jsonValue.getRawValue().getClass().getName();
}
}