docs: public static <T extends Enum<T> & FieldNameProvider> List<Order> parse(final Class<T> enumType,
              final String sortString) throws SortParameterSyntaxErrorException {
          final List<Order> parsedSortings = new ArrayList<>();
          // scan the sort tuples e.g. field:direction
          if (sortString != null) {
              final StringTokenizer tupleTokenizer = new StringTokenizer(sortString, DELIMITER_SORT_TUPLE);
              while (tupleTokenizer.hasMoreTokens()) {
                  final String sortTuple = tupleTokenizer.nextToken().trim();
                  final StringTokenizer fieldDirectionTokenizer = new StringTokenizer(sortTuple,
                          DELIMITER_FIELD_DIRECTION);
                  if (fieldDirectionTokenizer.countTokens() == 2) {
                      final String fieldName = fieldDirectionTokenizer.nextToken().trim().toUpperCase();
                      final String sortDirectionStr = fieldDirectionTokenizer.nextToken().trim();
  
                      final T identifier = getAttributeIdentifierByName(enumType, fieldName);
  
                      final Direction sortDirection = getDirection(sortDirectionStr);
                      parsedSortings.add(new Order(sortDirection, identifier.getFieldName()));
                  } else {
                      throw new SortParameterSyntaxErrorException();
                  }
              }
          }
          return parsedSortings;
      }