package eu.eudat.data.query.definition.helpers; import java.util.LinkedList; import java.util.List; public class ColumnOrderings { private String[] fields; public String[] getFields() { return fields; } public void setFields(String[] fields) { this.fields = fields; } public Ordering[] getFieldOrderings() { List orderings = new LinkedList<>(); for (String field : fields) { orderings.add(this.orderingFromString(field)); } return orderings.toArray(new Ordering[orderings.size()]); } private Ordering orderingFromString(String field) { Ordering ordering = new Ordering(field); if (ordering.getFieldName().contains("+")) ordering.fieldName(ordering.getFieldName().replace("+", "")).orderByType(Ordering.OrderByType.ASC); else if (ordering.getFieldName().startsWith("-")) ordering.fieldName(ordering.getFieldName().replace("-", "")).orderByType(Ordering.OrderByType.DESC); if (ordering.getFieldName().contains("|count|")) ordering.fieldName(ordering.getFieldName().replace("|count|", "")).columnType(Ordering.ColumnType.COUNT); else if (ordering.getFieldName().contains("|join|")) ordering.fieldName(ordering.getFieldName().replace("|join|", "")).columnType(Ordering.ColumnType.JOIN_COLUMN); return ordering; } }