TypeInferenceUtils { public static DataTypeEnum getDataType(String value) { DataTypeEnum dataTypeEnum = getNativeDataType(value); if (DataTypeEnum.STRING.equals(dataTypeEnum)) { if (isDate(value)) { dataTypeEnum = DataTypeEnum.DATE; } else if (isTime(value)) { dataTypeEnum = DataTypeEnum.TIME; } } return dataTypeEnum; }  static boolean isDouble(String value); static boolean isInteger(String value); static boolean isNumber(String value); static BigInteger getBigInteger(String value); static boolean isBoolean(String value); static boolean isDate(String value); static boolean isTime(String value); static boolean isEmpty(String value); static boolean isValid(DataTypeEnum type, String value); static DataTypeEnum getDataType(String value); static DataTypeEnum getNativeDataType(String value);  }
@Test public void testGetDataType() { Assert.assertEquals(DataTypeEnum.BOOLEAN, TypeInferenceUtils.getDataType("true")); Assert.assertEquals(DataTypeEnum.INTEGER, TypeInferenceUtils.getDataType("123")); Assert.assertEquals(DataTypeEnum.DOUBLE, TypeInferenceUtils.getDataType("1045.35")); Assert.assertEquals(DataTypeEnum.STRING, TypeInferenceUtils.getDataType("abc")); Assert.assertEquals(DataTypeEnum.DATE, TypeInferenceUtils.getDataType("2019-12-25")); Assert.assertEquals(DataTypeEnum.TIME, TypeInferenceUtils.getDataType("15:23:56")); Assert.assertEquals(DataTypeEnum.EMPTY, TypeInferenceUtils.getDataType(" ")); }