/** * Create a new aggregating set expression using a backing TreeSet * * @param groupExpression values for this expression will be accumulated into a set * @return wrapper expression */ public static <E, F extends Comparable<? super F>> GroupExpression<E, SortedSet<F>> sortedSet(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, SortedSet<F>>(groupExpression, GSet.createSorted(groupExpression)); }
/** * Create a new aggregating set expression using a backing TreeSet using the given comparator * * @param groupExpression values for this expression will be accumulated into a set * @param comparator comparator of the created TreeSet instance * @return wrapper expression */ public static <E, F> GroupExpression<E, SortedSet<F>> sortedSet(GroupExpression<E, F> groupExpression, Comparator<? super F> comparator) { return new MixinGroupExpression<E, F, SortedSet<F>>(groupExpression, GSet.createSorted(groupExpression, comparator)); }
/** * Create a new aggregating set expression using a backing LinkedHashSet * * @param groupExpression values for this expression will be accumulated into a set * @param <E> * @param <F> * @return wrapper expression */ public static <E, F> GroupExpression<E, Set<F>> set(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, Set<F>>(groupExpression, GSet.createLinked(groupExpression)); }
/** * Create a new aggregating list expression * * @param groupExpression values for this expression will be accumulated into a list * @param <E> * @param <F> * @return wrapper expression */ public static <E, F> AbstractGroupExpression<E, List<F>> list(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, List<F>>(groupExpression, new GList<F>(groupExpression)); }
/** * Create a new aggregating set expression using a backing TreeSet * * @param groupExpression values for this expression will be accumulated into a set * @return wrapper expression */ public static <E, F extends Comparable<? super F>> GroupExpression<E, SortedSet<F>> sortedSet(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, SortedSet<F>>(groupExpression, GSet.createSorted(groupExpression)); }
/** * Create a new aggregating set expression using a backing TreeSet using the given comparator * * @param groupExpression values for this expression will be accumulated into a set * @param comparator comparator of the created TreeSet instance * @return wrapper expression */ public static <E, F> GroupExpression<E, SortedSet<F>> sortedSet(GroupExpression<E, F> groupExpression, Comparator<? super F> comparator) { return new MixinGroupExpression<E, F, SortedSet<F>>(groupExpression, GSet.createSorted(groupExpression, comparator)); }
/** * Create a new aggregating set expression using a backing LinkedHashSet * * @param groupExpression values for this expression will be accumulated into a set * @param <E> * @param <F> * @return wrapper expression */ public static <E, F> GroupExpression<E, Set<F>> set(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, Set<F>>(groupExpression, GSet.createLinked(groupExpression)); }
/** * Create a new aggregating list expression * * @param groupExpression values for this expression will be accumulated into a list * @param <E> * @param <F> * @return wrapper expression */ public static <E, F> AbstractGroupExpression<E, List<F>> list(GroupExpression<E, F> groupExpression) { return new MixinGroupExpression<E, F, List<F>>(groupExpression, new GList<F>(groupExpression)); }