Github user ottobackwards commented on a diff in the pull request:

    https://github.com/apache/metron/pull/823#discussion_r153968584
  
    --- Diff: 
metron-stellar/stellar-common/src/main/java/org/apache/metron/stellar/dsl/functions/OrdinalFunctions.java
 ---
    @@ -18,76 +18,91 @@
     
     package org.apache.metron.stellar.dsl.functions;
     
    +import com.google.common.collect.Iterables;
    +import org.apache.metron.stellar.common.utils.ConversionUtils;
     import org.apache.metron.stellar.dsl.BaseStellarFunction;
     import org.apache.metron.stellar.dsl.Stellar;
     
     import java.util.Collections;
     import java.util.List;
    +import java.util.function.BiFunction;
    +import java.util.function.Predicate;
     import java.util.stream.Collectors;
     
     public class OrdinalFunctions {
     
    -    /**
    -     * Stellar Function: MAX
    -     * <p>
    -     * Return the maximum value of a list of input values in a Stellar list
    -     */
    -    @Stellar(name = "MAX"
    -            , description = "Returns the maximum value of a list of input 
values"
    -            , params = {"list_of_values - Stellar list of values to 
evaluate. The list may only contain 1 type of object (only strings or only 
numbers)" +
    -                        " and the objects must be comparable / ordinal"}
    -            , returns = "The highest value in the list, null if the list 
is empty or the input values could not be ordered")
    -    public static class Max extends BaseStellarFunction {
    +  /**
    +   * Stellar Function: MAX
    +   * <p>
    +   * Return the maximum value of a list of input values in a Stellar list
    +   */
    +  @Stellar(name = "MAX"
    +          , description = "Returns the maximum value of a list of input 
values"
    +          , params = {"list_of_values - Stellar list of values to 
evaluate. The list may only contain 1 type of object (only strings or only 
numbers)" +
    +          " and the objects must be comparable / ordinal"}
    +          , returns = "The highest value in the list, null if the list is 
empty or the input values could not be ordered")
    +  public static class Max extends BaseStellarFunction {
     
    -        @Override
    -        public Object apply(List<Object> args) {
    -            if (args.size() < 1 || args.get(0) == null) {
    -                throw new IllegalStateException("MAX function requires at 
least a Stellar list of values");
    -            }
    -            List list = (List<Object>) args.get(0);
    -            return orderList(list, true);
    -        }
    +    @Override
    +    public Object apply(List<Object> args) {
    +      if (args.size() < 1 || args.get(0) == null) {
    +        throw new IllegalStateException("MAX function requires at least a 
Stellar list of values");
    +      }
    --- End diff --
    
    Ok.  I ok with that, but the documentation in the manual and the Annotation 
should match up,
    can should explicitly say that the values need to be the same type, and 
that type needs to be comparable.  if you want to give examples that is fine 
"for example Strings, Numbers...."
    
    Fix that up and I think I'm good. 
    Thanks for all the work on this!


---

Reply via email to