@Override public boolean visitEnter(WikittyQuery o) { WikittyQuery q = getQuery(); q.setFacetExtension(q.isFacetExtension()); q.setFacetField(new ArrayList<Element>(o.getFacetField())); q.setFacetLimit(o.getFacetLimit()); q.setFacetMinCount(o.getFacetMinCount()); q.setOffset(o.getOffset()); q.setLimit(o.getLimit()); q.setFacetSort(o.getFacetSort()); q.setName(o.getName()); q.setSortAscending(new ArrayList<Element>(o.getSortAscending())); q.setSortDescending(new ArrayList<Element>(o.getSortDescending())); q.setWikittyFieldSearchDepth(o.getWikittyFieldSearchDepth()); for (FacetQuery c : o.getFacetQuery()) { WikittyQueryVisitorCopy v = new WikittyQueryVisitorCopy(); c.getCondition().accept(v); Condition condition = v.getCondition(); q.addFacetQuery(c.getName(), condition); } return true; }
/** * Test sort on test data. */ @Test public void testSearchWithSortTestData() { WikittyQuery query1 = WikittyQueryParser.parse("Product.price <= 100"); query1.setSortDescending(Product.ELEMENT_FIELD_PRODUCT_PRICE); WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1); Assert.assertEquals(100, results1.get(0).getPriceFromProduct()); Assert.assertEquals(42, results1.get(1).getPriceFromProduct()); Assert.assertEquals(15, results1.get(2).getPriceFromProduct()); Assert.assertEquals(13, results1.get(3).getPriceFromProduct()); }