public static Object convertFromDeltaPartitionValue()

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


  public static Object convertFromDeltaPartitionValue(
      String value,
      InternalType fieldType,
      PartitionTransformType partitionTransformType,
      String dateFormat) {
    if (value == null) {
      return null;
    }
    if (partitionTransformType == PartitionTransformType.VALUE) {
      switch (fieldType) {
        case DATE:
          return (int) LocalDate.parse(value).toEpochDay();
        case INT:
          return Integer.parseInt(value);
        case LONG:
          return Long.parseLong(value);
        case DOUBLE:
          return Double.parseDouble(value);
        case FLOAT:
          return Float.parseFloat(value);
        case STRING:
        case ENUM:
          return value;
        case DECIMAL:
          return new BigDecimal(value);
        case BYTES:
        case FIXED:
          return value.getBytes(StandardCharsets.UTF_8);
        case BOOLEAN:
          return Boolean.parseBoolean(value);
        default:
          throw new NotSupportedException("Unsupported partition value type: " + fieldType);
      }
    } else {
      // use appropriate date formatter for value serialization.
      try {
        DateFormat formatter = getDateFormat(dateFormat);
        return formatter.parse(value).toInstant().toEpochMilli();
      } catch (ParseException ex) {
        throw new org.apache.xtable.model.exception.ParseException(
            "Unable to parse partition value", ex);
      }
    }
  }