package jpasearch.repository.query.builder; import javax.persistence.metamodel.PluralAttribute; import javax.persistence.metamodel.SingularAttribute; import jpasearch.repository.query.Path; /** * @author speralta */ public class RangeBuilder<F, FROM, TO, B extends SelectorsBuilder<F, ?, B>> extends AbstractPathBuilder<B, F, FROM, TO> { public RangeBuilder(B parent, Path<F, TO> path) { super(parent, path); } public RangeBuilder(B parent, PluralAttribute<? super F, ?, TO> attribute) { super(parent, attribute); } public RangeBuilder(B parent, SingularAttribute<? super F, TO> attribute) { super(parent, attribute); } private <E> RangeBuilder(B parent, AbstractPathBuilder<B, F, E, FROM> pathBuilder, PluralAttribute<? super FROM, ?, TO> attribute) { super(parent, pathBuilder, attribute); } private <E> RangeBuilder(B parent, AbstractPathBuilder<B, F, E, FROM> pathBuilder, SingularAttribute<? super FROM, TO> attribute) { super(parent, pathBuilder, attribute); } public <E> RangeBuilder<F, TO, E, B> to(SingularAttribute<? super TO, E> attribute) { return new RangeBuilder<>(getParent(), this, attribute); } public <E> RangeBuilder<F, TO, E, B> to(PluralAttribute<? super TO, ?, E> attribute) { return new RangeBuilder<>(getParent(), this, attribute); } public <E extends Comparable<E>> RangeFinalBuilder<F, TO, E, B> finallyOn(SingularAttribute<? super TO, E> attribute) { return new RangeFinalBuilder<>(getParent(), this, attribute); } public <E extends Comparable<E>> RangeFinalBuilder<F, TO, E, B> finallyOn(PluralAttribute<? super TO, ?, E> attribute) { return new RangeFinalBuilder<>(getParent(), this, attribute); } }