Search in sources :

Example 1 with Order

use of com.querydsl.core.types.Order in project rpki-validator-3 by RIPE-NCC.

the class JPARoaPrefixAssertions method toOrderSpecifier.

private OrderSpecifier<?> toOrderSpecifier(Sorting sorting) {
    if (sorting == null) {
        sorting = Sorting.of(Sorting.By.ASN, Sorting.Direction.ASC);
    }
    Expression<? extends Comparable> column;
    switch(sorting.getBy()) {
        case PREFIX:
            column = roaPrefixAssertion.prefix;
            break;
        case COMMENT:
            column = roaPrefixAssertion.comment;
            break;
        case ASN:
        default:
            column = roaPrefixAssertion.asn;
            break;
    }
    Order order = sorting.getDirection() == Sorting.Direction.DESC ? Order.DESC : Order.ASC;
    return new OrderSpecifier<>(order, column);
}
Also used : Order(com.querydsl.core.types.Order) OrderSpecifier(com.querydsl.core.types.OrderSpecifier)

Example 2 with Order

use of com.querydsl.core.types.Order in project rpki-validator-3 by RIPE-NCC.

the class JPARpkiRepositories method toOrderSpecifier.

private OrderSpecifier<?> toOrderSpecifier(Sorting sorting) {
    if (sorting == null) {
        sorting = Sorting.of(Sorting.By.LOCATION, Sorting.Direction.ASC);
    }
    Expression<? extends Comparable> column;
    switch(sorting.getBy()) {
        case TYPE:
            column = rpkiRepository.type;
            break;
        case STATUS:
            column = rpkiRepository.status;
            break;
        case LASTCHECKED:
            column = rpkiRepository.updatedAt;
            break;
        case LOCATION:
        default:
            column = rpkiRepository.rrdpNotifyUri.coalesce(rpkiRepository.rsyncRepositoryUri);
            break;
    }
    Order order = sorting.getDirection() == Sorting.Direction.DESC ? Order.DESC : Order.ASC;
    return new OrderSpecifier<>(order, column);
}
Also used : Order(com.querydsl.core.types.Order) OrderSpecifier(com.querydsl.core.types.OrderSpecifier)

Example 3 with Order

use of com.querydsl.core.types.Order in project midpoint by Evolveum.

the class QLookupTableMapping method pagingAndOrdering.

@SuppressWarnings({ "unchecked", "rawtypes" })
private <R> SQLQuery<R> pagingAndOrdering(SQLQuery<R> query, RelationalValueSearchQuery queryDef, QLookupTableRowMapping rowMapping, QLookupTableRow alias) throws QueryException {
    if (queryDef != null && queryDef.getPaging() != null) {
        var paging = queryDef.getPaging();
        if (paging.getOffset() != null) {
            query = query.offset(paging.getOffset());
        }
        if (paging.getMaxSize() != null) {
            query = query.limit(paging.getMaxSize());
        }
        for (ObjectOrdering ordering : paging.getOrderingInstructions()) {
            Order direction = ordering.getDirection() == OrderDirection.DESCENDING ? Order.DESC : Order.ASC;
            var mapper = rowMapping.itemMapper(ordering.getOrderBy().firstToQName());
            Expression path = mapper.primaryPath(alias, null);
            if (ItemPath.equivalent(LookupTableRowType.F_LABEL, ordering.getOrderBy())) {
                // old repository uses normalized form for ordering
                path = alias.labelNorm;
            }
            query.orderBy(new OrderSpecifier<>(direction, path));
        }
    }
    return query;
}
Also used : Order(com.querydsl.core.types.Order) Expression(com.querydsl.core.types.Expression) BooleanExpression(com.querydsl.core.types.dsl.BooleanExpression) ObjectOrdering(com.evolveum.midpoint.prism.query.ObjectOrdering)

Aggregations

Order (com.querydsl.core.types.Order)3 OrderSpecifier (com.querydsl.core.types.OrderSpecifier)2 ObjectOrdering (com.evolveum.midpoint.prism.query.ObjectOrdering)1 Expression (com.querydsl.core.types.Expression)1 BooleanExpression (com.querydsl.core.types.dsl.BooleanExpression)1