if (tokens.canConsume("ascending")) order = Order.ASCENDING;
else if (tokens.canConsume("descending")) order = Order.DESCENDING;
return new OrderBySpec(order, scoreFunction);
}
PathExpression path = this.parsePathExpr(tokens);
if (!path.isRelative()) {
throw new ParsingException(tokens.nextPosition(),
"Expected either 'jcr:score(tableName)', '@<propertyName>', "
+ "or '<childName>/@<propertyOnChild>' but absolute path was found "
+ tokens.consume());
}
List<StepExpression> steps = path.getSteps();
if (steps.size() != 2) {
throw new ParsingException(tokens.nextPosition(),
"Expected either 'jcr:score(tableName)', '@<propertyName>', "
+ "or '<childName>/@<propertyOnChild>' but was found "
+ tokens.consume());