package org.arangodb.objectmapper; ////////////////////////////////////////////////////////////////////////////////////////// // //Object mapper for ArangoDB by triAGENS GmbH Cologne. // //Copyright triAGENS GmbH Cologne. // ////////////////////////////////////////////////////////////////////////////////////////// import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class PropertySort { /* * compare functions */ public enum Direction {ASCENDING, DESCENDING}; private List<PropertyContainer> propertyContainers = new ArrayList<PropertyContainer>(); public PropertySort sort(final String key, final Direction direction) { this.propertyContainers.add(new PropertyContainer(key, direction)); return this; } public String getSortString () { if (propertyContainers.isEmpty()) { return ""; } StringBuffer sb = new StringBuffer(); sb.append(" SORT "); int i = 1; for (final PropertyContainer container : propertyContainers) { if (i > 1) { sb.append(", "); } sb.append(" x.`"); sb.append(container.key); sb.append("` "); switch (container.direction) { case ASCENDING: sb.append("ASC"); break; case DESCENDING: sb.append("DESC"); break; } i++; } return sb.toString(); } private class PropertyContainer { public String key; public Direction direction; public PropertyContainer(final String key, final Direction direction) { this.key = key.replace("\"", "\\\""); this.direction = direction; } } }