protected void applySortToQuery(QueryAndData queryAndData, SearchOptions searchOptions) { String[] sorts = searchOptions.getOptionalParameter("sort[]", String[].class); if (sorts == null) { JSONArray sortsJson = searchOptions.getOptionalParameter("sort", JSONArray.class); if (sortsJson != null) { sorts = JSONUtil.toStringList(sortsJson).toArray(new String[sortsJson.length()]); } } if (sorts == null) { return; } for (String sort : sorts) { String propertyName = sort; SortDirection direction = SortDirection.ASCENDING; if (propertyName.toUpperCase().endsWith(":ASCENDING")) { direction = SortDirection.ASCENDING; propertyName = propertyName.substring(0, propertyName.length() - ":ASCENDING".length()); } else if (propertyName.toUpperCase().endsWith(":DESCENDING")) { direction = SortDirection.DESCENDING; propertyName = propertyName.substring(0, propertyName.length() - ":DESCENDING".length()); } queryAndData.getQuery().sort(propertyName, direction); } }
v1.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.TABLE_NAME, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() ); graph.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.ELEMENT_ID, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() ); graph.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.ELEMENT_TYPE, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() );
assertEquals("v2", results.iterator().next().getId()); results = graph.query("*", AUTHORIZATIONS_A_AND_B).hasNot("prop3").sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING).elements(); assertEquals(2, count(results)); Iterator<Element> iterator = results.iterator();
v1.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.TABLE_NAME, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() ); graph.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.ELEMENT_ID, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() ); graph.query(AUTHORIZATIONS_A) .sort(ExtendedDataRow.ELEMENT_TYPE, SortDirection.ASCENDING) .sort(ExtendedDataRow.ROW_ID, SortDirection.ASCENDING) .extendedDataRows() );
.sort(agePropertyName, SortDirection.ASCENDING) .vertices()); assertVertexIds(vertices, "v2", "v1", "v3", "v4"); .sort(agePropertyName, SortDirection.DESCENDING) .vertices()); assertVertexIds(vertices, "v2", "v1", "v4", "v3"); .sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING) .edges()); assertEdgeIds(edges, "e1", "e2", "e3"); .sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING) .edges()); assertEdgeIds(edges, "e1", "e2", "e3");
.sort(agePropertyName, SortDirection.ASCENDING) .vertices()); assertVertexIds(vertices, "v2", "v1", "v3", "v4"); .sort(agePropertyName, SortDirection.DESCENDING) .vertices()); assertVertexIds(vertices, "v2", "v1", "v4", "v3"); .sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING) .edges()); assertEdgeIds(edges, "e1", "e2", "e3"); .sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING) .edges()); assertEdgeIds(edges, "e1", "e2", "e3");
assertEquals("v2", results.iterator().next().getId()); results = graph.query("*", AUTHORIZATIONS_A_AND_B).hasNot("prop3").sort(Element.ID_PROPERTY_NAME, SortDirection.ASCENDING).elements(); assertEquals(2, count(results)); Iterator<Element> iterator = results.iterator();