package org.molgenis.data.rest.convert; import org.molgenis.data.Sort; import org.springframework.core.convert.converter.Converter; public class SortConverter implements Converter<String, Sort> { private static final String ORDER_ASC_POSTFIX = ":asc"; private static final String ORDER_DESC_POSTFIX = ":desc"; @Override public Sort convert(String source) { Sort sort = new Sort(); for (String attr : source.split(",")) { Sort.Direction direction; if (attr.endsWith(ORDER_DESC_POSTFIX)) { direction = Sort.Direction.DESC; attr = attr.substring(0, attr.length() - ORDER_DESC_POSTFIX.length()); } else if (attr.endsWith(ORDER_ASC_POSTFIX)) { direction = Sort.Direction.ASC; attr = attr.substring(0, attr.length() - ORDER_ASC_POSTFIX.length()); } else { direction = Sort.Direction.ASC; } sort.on(attr, direction); } return sort; } }