private static Object castObjectToInternalType()

in xtable-core/src/main/java/org/apache/xtable/delta/DeltaValueConverter.java [202:245]


  private static Object castObjectToInternalType(Object value, InternalSchema schema) {
    InternalType valueType = schema.getDataType();
    switch (valueType) {
      case DOUBLE:
        if (value instanceof String)
          switch (value.toString()) {
            case NAN_VALUE:
              return Double.NaN;
            case POSITIVE_INF_VALUE:
            case POSITIVE_INFINITY_VALUE:
            case INFINITY_VALUE:
              return Double.POSITIVE_INFINITY;
            case NEGATIVE_INF_VALUE:
            case NEGATIVE_INFINITY_VALUE:
              return Double.NEGATIVE_INFINITY;
          }
        break;
      case FLOAT:
        if (value instanceof Double) {
          return ((Double) value).floatValue();
        } else if (value instanceof String) {
          switch (value.toString()) {
            case NAN_VALUE:
              return Float.NaN;
            case POSITIVE_INF_VALUE:
            case POSITIVE_INFINITY_VALUE:
            case INFINITY_VALUE:
              return Float.POSITIVE_INFINITY;
            case NEGATIVE_INF_VALUE:
            case NEGATIVE_INFINITY_VALUE:
              return Float.NEGATIVE_INFINITY;
          }
        }
        break;
      case DECIMAL:
        return numberTypeToBigDecimal(value, schema);
      case LONG:
        if (value instanceof Integer) {
          return ((Integer) value).longValue();
        }
        break;
    }
    return value;
  }