// Copyright © 2015 HSL <https://www.hsl.fi> // This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses. package fi.hsl.parkandride.back; import com.querydsl.core.group.AbstractGroupExpression; import com.querydsl.core.group.GroupCollector; import com.querydsl.core.types.Expression; import fi.hsl.parkandride.core.domain.NullSafeSortedSet; import java.util.SortedSet; public class GSortedSet<T extends Comparable<? super T>> extends AbstractGroupExpression<T, NullSafeSortedSet<T>> { public static <E extends Comparable<? super E>> AbstractGroupExpression<E, NullSafeSortedSet<E>> sortedSet(Expression<E> expression) { return new GSortedSet<E>(expression); } private static final long serialVersionUID = -1575808026237160843L; public GSortedSet(Expression<T> expr) { super(SortedSet.class, expr); } @Override public GroupCollector<T, NullSafeSortedSet<T>> createGroupCollector() { return new GroupCollector<T, NullSafeSortedSet<T>>() { private final NullSafeSortedSet<T> set = new NullSafeSortedSet<T>(); @Override public void add(T o) { if (o != null) { set.add(o); } } @Override public NullSafeSortedSet<T> get() { return set; } }; } }