code: Date toDate(Object value) {
  
          if (value instanceof LocalDate) {
              LocalDate localDate = (LocalDate) value;
              return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
          } else if (value instanceof LocalDateTime) {
              LocalDateTime localDateTime = (LocalDateTime) value;
              return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
          } else if (value instanceof Date) {
              return (Date) value;
          }
  
          try {
              LiteralExpression literalExpression = LiteralType.getLiteralExpression(value.toString());
              if (literalExpression.getType().equals(DateType.class)
                      || literalExpression.getType().equals(DateTimeType.class)
                      || literalExpression.getType().equals(SimpleDateType.class)) {
                  return toDate(literalExpression.getValue());
              }
          } catch (IllegalValueException ignored) {
  
          }
          return null;
      }
docs: /*public boolean equal(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  public boolean notEqual(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean less(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean lessEqual(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean greater(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean greaterEqual(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean in(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean notIn(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }
  
  
  public boolean between(LiteralExpression left, LiteralExpression right) {
  throw new UnsupportedOperationException();
  }