ExprValueUtils { public static ExprValue fromObjectValue(Object o) { if (null == o) { return LITERAL_NULL; } if (o instanceof Map) { return tupleValue((Map) o); } else if (o instanceof List) { return collectionValue(((List) o)); } else if (o instanceof Integer) { return integerValue((Integer) o); } else if (o instanceof Long) { return longValue(((Long) o)); } else if (o instanceof Boolean) { return booleanValue((Boolean) o); } else if (o instanceof Double) { return doubleValue((Double) o); } else if (o instanceof String) { return stringValue((String) o); } else if (o instanceof Float) { return floatValue((Float) o); } else { throw new ExpressionEvaluationException("unsupported object " + o.getClass()); } }  static ExprValue booleanValue(Boolean value); static ExprValue integerValue(Integer value); static ExprValue doubleValue(Double value); static ExprValue floatValue(Float value); static ExprValue longValue(Long value); static ExprValue stringValue(String value); static ExprValue intervalValue(TemporalAmount value); static ExprValue tupleValue(Map<String, Object> map); static ExprValue collectionValue(List<Object> list); static ExprValue missingValue(); static ExprValue nullValue(); static ExprValue fromObjectValue(Object o); static ExprValue fromObjectValue(Object o, ExprCoreType type); static Integer getIntegerValue(ExprValue exprValue); static Double getDoubleValue(ExprValue exprValue); static Long getLongValue(ExprValue exprValue); static Float getFloatValue(ExprValue exprValue); static String getStringValue(ExprValue exprValue); static List<ExprValue> getCollectionValue(ExprValue exprValue); static Map<String, ExprValue> getTupleValue(ExprValue exprValue); static Boolean getBooleanValue(ExprValue exprValue); static final ExprValue LITERAL_TRUE; static final ExprValue LITERAL_FALSE; static final ExprValue LITERAL_NULL; static final ExprValue LITERAL_MISSING; }
@Test public void constructDateAndTimeValue() { assertEquals(new ExprDateValue("2012-07-07"), ExprValueUtils.fromObjectValue("2012-07-07", DATE)); assertEquals(new ExprTimeValue("01:01:01"), ExprValueUtils.fromObjectValue("01:01:01", TIME)); assertEquals(new ExprDatetimeValue("2012-07-07 01:01:01"), ExprValueUtils.fromObjectValue("2012-07-07 01:01:01", DATETIME)); assertEquals(new ExprTimestampValue("2012-07-07 01:01:01"), ExprValueUtils.fromObjectValue("2012-07-07 01:01:01", TIMESTAMP)); }