@Override public Optional<ImmutableQueryModifiers> applyToQueryModifiers(ImmutableQueryModifiers immutableQueryModifiers) { ImmutableList.Builder<OrderCondition> orderConditionBuilder = ImmutableList.builder(); for (OrderCondition orderCondition : immutableQueryModifiers.getSortConditions()) { Variable newVariable = applyToVariable((Variable) orderCondition.getVariable()); orderConditionBuilder.add(orderCondition.newVariable(newVariable)); } return immutableQueryModifiers.newSortConditions(orderConditionBuilder.build()); }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if(!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }
/** * TODO: explain */ private static Optional<ImmutableQueryModifiers> updateOptionalModifiers( Optional<ImmutableQueryModifiers> optionalModifiers, ImmutableSubstitution<? extends ImmutableTerm> substitution1, ImmutableSubstitution<? extends ImmutableTerm> substitution2) { if (!optionalModifiers.isPresent()) { return Optional.empty(); } ImmutableQueryModifiers previousModifiers = optionalModifiers.get(); ImmutableList.Builder<OrderCondition> conditionBuilder = ImmutableList.builder(); for (OrderCondition condition : previousModifiers.getSortConditions()) { ImmutableTerm newTerm = substitution2.apply(substitution1.apply(condition.getVariable())); /** * If after applying the substitution the term is still a variable, * "updates" the OrderCondition. * * Otherwise, forgets it. */ if (newTerm instanceof Variable) { conditionBuilder.add(condition.newVariable((Variable) newTerm)); } } return previousModifiers.newSortConditions(conditionBuilder.build()); }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if (!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if(!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if(!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if(!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }
@Override public String sqlOrderBy(List<OrderCondition> conditions, String viewname) { String sql = ""; if(!conditions.isEmpty()) { sql = "ORDER BY "; boolean needComma = false; for (OrderCondition c : conditions) { if (needComma) { sql += ", "; } sql += sqlQualifiedColumn(viewname, c.getVariable().getName()); if (c.getDirection() == OrderCondition.ORDER_DESCENDING) { sql += " DESC"; } needComma = true; } } return sql; }