public static StringPredefined newInstance(GroupingExpression exp, List<StringBucket> args) {
        if (args.isEmpty()) {
            throw new IllegalArgumentException("Expected at least one bucket, got none.");
        }
        return new StringPredefined(null, null, exp, args);
    }
Constructs a new instance of this class from a list of arguments.

@param exp  The expression to evaluate, must evaluate to a string.
@param args The buckets to pass to the constructor.
@return The created instance.
@throws IllegalArgumentException Thrown if the list of buckets is empty.
container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java