private static Object leafToLiteral(PredicateLeaf leaf, TransformSpec transform) {
    switch (leaf.getType()) {
      case LONG:
      case BOOLEAN:
      case FLOAT:
        return leaf.getLiteral();
      case STRING:
        return convertLiteral(leaf.getLiteral(), transform);
      case DATE:
        if (leaf.getLiteral() instanceof Date) {
          return daysFromDate((Date) leaf.getLiteral());
        }
        return daysFromTimestamp((Timestamp) leaf.getLiteral());
      case TIMESTAMP:
        return microsFromTimestamp((Timestamp) LITERAL_FIELD.get(leaf));
      case DECIMAL:
        return hiveDecimalToBigDecimal((HiveDecimalWritable) leaf.getLiteral());

      default:
        throw new UnsupportedOperationException("Unknown type: " + leaf.getType());
    }
  }
Translate leaf nodes from Hive operator to Iceberg operator.
@param leaf Leaf node
@return Expression fully translated from Hive PredicateLeaf
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergFilterFactory.java