@Override public int compare(final T entity1, final T entity2) { try { int result = 0; for (final OrderExpression expression : orderBy.getOrders()) { String first = evaluateExpression(entity1, expression.getExpression()); String second = evaluateExpression(entity2, expression.getExpression()); if (first != null && second != null) { result = first.compareTo(second); } else if (first == null && second != null) { result = 1; } else if (first != null && second == null) { result = -1; } if (expression.getSortOrder() == SortOrder.desc) { result = -result; } if (result != 0) { break; } } return result; } catch (final ODataException e) { return 0; } } });
@Override public Object accept(final ExpressionVisitor visitor) throws ExceptionVisitExpression, ODataApplicationException { ArrayList<Object> retParameters = new ArrayList<Object>(); for (OrderExpression order : orders) { Object retParameter = order.accept(visitor); retParameters.add(retParameter); } Object ret = visitor.visitOrderByExpression(this, orderbyString, retParameters); return ret; }
@Override public Object visitOrder(final OrderExpression orderExpression, final Object filterResult, final SortOrder sortOrder) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", orderExpression.getKind().toString()).separator() .namedStringValueRaw("sortorder", sortOrder.toString()).separator().name("expression").unquotedValue( filterResult.toString()).endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
@Override public Object visitOrder(final OrderExpression orderExpression, final Object filterResult, final SortOrder sortOrder) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", orderExpression.getKind().toString()).separator() .namedStringValueRaw("sortorder", sortOrder.toString()).separator().name("expression").unquotedValue( filterResult.toString()).endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
@Override public int compare(final T entity1, final T entity2) { try { int result = 0; for (final OrderExpression expression : orderBy.getOrders()) { String first = evaluateExpression(entity1, expression.getExpression()); String second = evaluateExpression(entity2, expression.getExpression()); if (first != null && second != null) { result = first.compareTo(second); } else if (first == null && second != null) { result = 1; } else if (first != null && second == null) { result = -1; } if (expression.getSortOrder() == SortOrder.desc) { result = -result; } if (result != 0) { break; } } return result; } catch (final ODataException e) { return 0; } } });
@Override public Object accept(final ExpressionVisitor visitor) throws ExceptionVisitExpression, ODataApplicationException { ArrayList<Object> retParameters = new ArrayList<Object>(); for (OrderExpression order : orders) { Object retParameter = order.accept(visitor); retParameters.add(retParameter); } Object ret = visitor.visitOrderByExpression(this, orderbyString, retParameters); return ret; }
@Override public Object visitOrder(final OrderExpression orderExpression, final Object filterResult, final SortOrder sortOrder) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", orderExpression.getKind().toString()).separator() .namedStringValueRaw("sortorder", sortOrder.toString()).separator().name("expression").unquotedValue( filterResult.toString()).endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
@Override public int compare(final T entity1, final T entity2) { try { int result = 0; for (final OrderExpression expression : orderBy.getOrders()) { String first = evaluateExpression(entity1, expression.getExpression()); String second = evaluateExpression(entity2, expression.getExpression()); if (first != null && second != null) { result = first.compareTo(second); } else if (first == null && second != null) { result = 1; } else if (first != null && second == null) { result = -1; } if (expression.getSortOrder() == SortOrder.desc) { result = -result; } if (result != 0) { break; } } return result; } catch (final ODataException e) { return 0; } } });
@Override public Object accept(final ExpressionVisitor visitor) throws ExceptionVisitExpression, ODataApplicationException { ArrayList<Object> retParameters = new ArrayList<Object>(); for (OrderExpression order : orders) { Object retParameter = order.accept(visitor); retParameters.add(retParameter); } Object ret = visitor.visitOrderByExpression(this, orderbyString, retParameters); return ret; }
private void setOrderBy(QueryRequest queryRequest, GetEntitySetUriInfo uriInfo) { OrderByExpressionImpl orderItem = null; if (uriInfo.getOrderBy() != null) { for (OrderExpression orderExpr : uriInfo.getOrderBy().getOrders()) { SortOrder sortOrder = orderExpr.getSortOrder(); String order = sortOrder.name(); boolean isDescending = order.equals("desc"); String expression = orderExpr.getExpression().getUriLiteral(); orderItem = new OrderByExpressionImpl(isDescending, expression); ((QueryRequestImpl) queryRequest).setOrderByOption(orderItem); } } }
for (final OrderExpression order : orderBy.getOrders()) { writer.append("<li>"); appendExpression(order.getExpression(), writer); final ExpressionKind kind = order.getExpression().getKind(); if (kind == ExpressionKind.PROPERTY || kind == ExpressionKind.LITERAL) { writer.append("<br />"); .append(order.getSortOrder().toString()) .append("</span></li>\n");
for (final OrderExpression order : orderBy.getOrders()) { writer.append("<li>"); appendExpression(order.getExpression(), writer); final ExpressionKind kind = order.getExpression().getKind(); if (kind == ExpressionKind.PROPERTY || kind == ExpressionKind.LITERAL) { writer.append("<br />"); .append(order.getSortOrder().toString()) .append("</span></li>\n");
if (orderBy.getExpression().getKind() == ExpressionKind.MEMBER) { orderByField = parseToJPAWhereExpression(orderBy.getExpression(), tableAlias); } else { if (tableAlias != null) { orderByField = tableAlias + JPQLStatement.DELIMITER.PERIOD + getPropertyName(orderBy.getExpression()); } else { orderByField = getPropertyName(orderBy.getExpression()); orderByDirection = (orderBy.getSortOrder() == SortOrder.asc) ? EMPTY : JPQLStatement.DELIMITER.SPACE + "DESC"; //$NON-NLS-1$ jpqlOrderByExpression += orderByField + orderByDirection + " , ";
if (orderBy.getExpression().getKind() == ExpressionKind.MEMBER) { orderByField = parseToJPAWhereExpression(orderBy.getExpression(), tableAlias); } else { orderByField = tableAlias + JPQLStatement.DELIMITER.PERIOD + getPropertyName(orderBy.getExpression()); orderByDirection = (orderBy.getSortOrder() == SortOrder.asc) ? EMPTY : JPQLStatement.DELIMITER.SPACE + "DESC"; //$NON-NLS-1$ jpqlOrderByExpression += orderByField + orderByDirection + " , ";
private void populateQueryOptions(QueryRequestImpl qr, UriInfo uriInfo) throws EdmException { if(uriInfo.getTop() != null) qr.setTopOption(uriInfo.getTop()); if(uriInfo.getSkip() != null) qr.setSkipOption(uriInfo.getSkip()); if(uriInfo.getOrderBy() != null) { for(OrderExpression oe : uriInfo.getOrderBy().getOrders()) { qr.setOrderByOption(new OrderByExpressionImpl(oe.getSortOrder().equals(SortOrder.desc), oe.getExpression().getUriLiteral())); } } if(!uriInfo.getSelect().isEmpty()) { for(SelectItem selectItem : uriInfo.getSelect()) if(selectItem.getProperty() != null) qr.setSelectItems(selectItem.getProperty().getName()); } /* * Custom query options are possible not just for query, but currently the api * to get custom query options is only there in QueryRequest. Hence its done * only here. */ if(!uriInfo.getCustomQueryOptions().isEmpty()) { qr.setCustomQueryOptions(uriInfo.getCustomQueryOptions()); } }