private Ordering[] parseOrder() throws RepositoryException { ArrayList<Ordering> orderList = new ArrayList<Ordering>(); do { Ordering ordering; DynamicOperand op = parseDynamicOperand(); if (readIf("DESC")) { ordering = factory.descending(op); } else { readIf("ASC"); ordering = factory.ascending(op); } orderList.add(ordering); } while (readIf(",")); Ordering[] orderings = new Ordering[orderList.size()]; orderList.toArray(orderings); return orderings; }
private Ordering[] parseOrder() throws RepositoryException { ArrayList<Ordering> orderList = new ArrayList<Ordering>(); do { Ordering ordering; DynamicOperand op = parseDynamicOperand(); if (readIf("DESC")) { ordering = factory.descending(op); } else { readIf("ASC"); ordering = factory.ascending(op); } orderList.add(ordering); } while (readIf(",")); Ordering[] orderings = new Ordering[orderList.size()]; orderList.toArray(orderings); return orderings; }
private Ordering[] parseOrder() throws RepositoryException { ArrayList<Ordering> orderList = new ArrayList<Ordering>(); do { Ordering ordering; DynamicOperand op = parseDynamicOperand(); if (readIf("DESC")) { ordering = factory.descending(op); } else { readIf("ASC"); ordering = factory.ascending(op); } orderList.add(ordering); } while (readIf(",")); Ordering[] orderings = new Ordering[orderList.size()]; orderList.toArray(orderings); return orderings; }
/** * Test case for {@link QueryObjectModelFactory#ascending(DynamicOperand)} */ public void testOrderingAscending() throws RepositoryException { PropertyValue op = qf.propertyValue(SELECTOR_NAME1, propertyName1); Ordering asc = qf.ascending(op); assertEquals("Ordering.getOrder() must return QueryObjectModelConstants.ORDER_ASCENDING", QueryObjectModelConstants.JCR_ORDER_ASCENDING, asc.getOrder()); assertTrue("Not a PropertyValue operand", asc.getOperand() instanceof PropertyValue); }
/** * @return a basic QOM to test order by queries. * @throws RepositoryException if an error occurs. */ protected QueryObjectModel createQOM(boolean ascending) throws RepositoryException { DynamicOperand op = createOrderingOperand(); Ordering ordering; if (ascending) { ordering = qf.ascending(op); } else { ordering = qf.descending(op); } return qf.createQuery( qf.selector(testNodeType, "s"), qf.descendantNode("s", testRoot), new Ordering[]{ordering}, null ); }
public void testMultipleSelectors() throws RepositoryException { // ascending Ordering[] orderings = new Ordering[]{ qf.ascending(qf.propertyValue(LEFT, propertyName2)) }; QueryObjectModel qom = createQuery(orderings); checkResultOrder(qom, SELECTOR_NAMES, new Node[][]{{n2, n2}, {n1, n2}}); // descending orderings[0] = qf.descending(qf.propertyValue(LEFT, propertyName2)); qom = createQuery(orderings); checkResultOrder(qom, SELECTOR_NAMES, new Node[][]{{n1, n2}, {n2, n2}}); }
public void testOrdering() throws RepositoryException { QueryObjectModel qom = qf.createQuery( qf.selector(testNodeType, "s"), qf.and( qf.fullTextSearch("s", null, qf.literal(vf.createValue("fox"))), qf.descendantNode("s", testRootNode.getPath()) ), new Ordering[]{qf.ascending(qf.fullTextSearchScore("s"))}, null ); forQOMandSQL2(qom, new Callable() { public Object call(Query query) throws RepositoryException { RowIterator rows = query.execute().getRows(); double previousScore = Double.NaN; while (rows.hasNext()) { double score = rows.nextRow().getScore("s"); if (!Double.isNaN(previousScore)) { assertTrue("wrong order", previousScore <= score); } previousScore = score; } return null; } }); }
@Test public void ascending() throws RepositoryException { PropertyValue p = f.propertyValue("selectorName", "propertyName"); Ordering o = f.ascending(p); assertEquals(p, o.getOperand()); assertEquals(QueryObjectModelConstants.JCR_ORDER_ASCENDING, o.getOrder()); assertEquals("[selectorName].[propertyName]", p.toString()); }
public void testCreateQueryWithConstraintAndOrdering() throws RepositoryException { Selector selector = qf.selector(testNodeType, SELECTOR_NAME1); PropertyExistence propExist = qf.propertyExistence(SELECTOR_NAME1, propertyName1); PropertyValue propValue = qf.propertyValue(SELECTOR_NAME1, propertyName1); Ordering ordering = qf.ascending(propValue); QueryObjectModel qom = qf.createQuery(selector, propExist, new Ordering[]{ordering}, null); assertTrue("Not a selector source", qom.getSource() instanceof Selector); assertTrue("Not a property existence constraint", qom.getConstraint() instanceof PropertyExistence); assertEquals("Wrong size of orderings", 1, qom.getOrderings().length); assertEquals("Wrong size of columns", 0, qom.getColumns().length); }
public void testCreateQueryFromSourceWithConstraintAndOrdering() throws RepositoryException { Source selector = qf.selector(testNodeType, SELECTOR_NAME1); PropertyExistence propExist = qf.propertyExistence(SELECTOR_NAME1, propertyName1); PropertyValue propValue = qf.propertyValue(SELECTOR_NAME1, propertyName1); Ordering ordering = qf.ascending(propValue); QueryObjectModel qom = qf.createQuery(selector, propExist, new Ordering[]{ordering}, null); assertTrue("Not a selector source", qom.getSource() instanceof Selector); assertTrue("Not a property existence constraint", qom.getConstraint() instanceof PropertyExistence); assertEquals("Wrong size of orderings", 1, qom.getOrderings().length); assertEquals("Wrong size of columns", 0, qom.getColumns().length); }
public void testCreateQueryFromSourceWithConstraintOrderingAndColumn() throws RepositoryException { Source selector = qf.selector(testNodeType, SELECTOR_NAME1); PropertyExistence propExist = qf.propertyExistence(SELECTOR_NAME1, propertyName1); PropertyValue propValue = qf.propertyValue(SELECTOR_NAME1, propertyName1); Ordering ordering = qf.ascending(propValue); Column column = qf.column(SELECTOR_NAME1, propertyName1, propertyName1); QueryObjectModel qom = qf.createQuery(selector, propExist, new Ordering[]{ordering}, new Column[]{column}); assertTrue("Not a selector source", qom.getSource() instanceof Selector); assertTrue("Not a property existence constraint", qom.getConstraint() instanceof PropertyExistence); assertEquals("Wrong size of orderings", 1, qom.getOrderings().length); assertEquals("Wrong size of columns", 1, qom.getColumns().length); }
public void testCreateQueryWithConstraintOrderingAndColumn() throws RepositoryException { Selector selector = qf.selector(testNodeType, SELECTOR_NAME1); PropertyExistence propExist = qf.propertyExistence(SELECTOR_NAME1, propertyName1); PropertyValue propValue = qf.propertyValue(SELECTOR_NAME1, propertyName1); Ordering ordering = qf.ascending(propValue); Column column = qf.column(SELECTOR_NAME1, propertyName1, propertyName1); QueryObjectModel qom = qf.createQuery(selector, propExist, new Ordering[]{ordering}, new Column[]{column}); assertTrue("Not a selector source", qom.getSource() instanceof Selector); assertTrue("Not a property existence constraint", qom.getConstraint() instanceof PropertyExistence); assertEquals("Wrong size of orderings", 1, qom.getOrderings().length); assertEquals("Wrong size of columns", 1, qom.getColumns().length); }
@Test public void createQuery() throws RepositoryException { Selector s = f.selector("nt:file", "x"); BindVariableValue b = f.bindVariable("var"); Constraint c = f.propertyExistence("x", "c"); PropertyValue p = f.propertyValue("x", "propertyName"); c = f.and(f.comparison(p, QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, b), c); Ordering o = f.ascending(p); Column col = f.column("x", "propertyName", "columnName"); Ordering[] ords = new Ordering[]{o}; Column[] cols = new Column[]{col}; QueryObjectModel q = f.createQuery(s, c, ords, cols); assertEquals(Query.JCR_JQOM, q.getLanguage()); String[] bv = q.getBindVariableNames(); assertEquals(1, bv.length); assertEquals("var", bv[0]); assertEquals(s, q.getSource()); assertEquals(c, q.getConstraint()); assertEquals(o, q.getOrderings()[0]); assertEquals(col, q.getColumns()[0]); }