package jpasearch.repository.query.builder; import javax.persistence.metamodel.PluralAttribute; import javax.persistence.metamodel.SingularAttribute; /** * @author speralta */ public class OrderByBuilder<F, FROM, TO> extends AbstractPathBuilder<OrdersByBuilder<F>, F, FROM, TO> { public OrderByBuilder(OrdersByBuilder<F> parent, PluralAttribute<? super F, ?, TO> attribute) { super(parent, attribute); } public OrderByBuilder(OrdersByBuilder<F> parent, SingularAttribute<? super F, TO> attribute) { super(parent, attribute); } private <E> OrderByBuilder(OrdersByBuilder<F> parent, OrderByBuilder<F, E, FROM> orderByBuilder, PluralAttribute<? super FROM, ?, TO> attribute) { super(parent, orderByBuilder, attribute); } private <E> OrderByBuilder(OrdersByBuilder<F> parent, OrderByBuilder<F, E, FROM> orderByBuilder, SingularAttribute<? super FROM, TO> attribute) { super(parent, orderByBuilder, attribute); } public SearchBuilder<F> asc() { return getParent().asc(getPath()).toParent(); } public SearchBuilder<F> desc() { return getParent().desc(getPath()).toParent(); } public <E> OrderByBuilder<F, TO, E> and(SingularAttribute<? super TO, E> attribute) { return new OrderByBuilder<F, TO, E>(getParent(), this, attribute); } public <E> OrderByBuilder<F, TO, E> and(PluralAttribute<? super TO, ?, E> attribute) { return new OrderByBuilder<F, TO, E>(getParent(), this, attribute); } }