예제 #1
0
  /** Generate a sort string for the given DC metadata */
  public static String makeSortString(String value, String language, String type) {
    OrderFormatDelegate delegate = null;

    // If there is no value, return null
    if (value == null) return null;

    // If a named index has been supplied
    if (type != null && type.length() > 0) {
      // Use a delegate if one is configured
      if ((delegate = OrderFormat.getDelegate(type)) != null) {
        return delegate.makeSortString(value, language);
      }

      // No delegates found, so apply defaults
      if (type.equalsIgnoreCase(OrderFormat.AUTHOR) && authorDelegate != null) {
        return authorDelegate.makeSortString(value, language);
      }

      if (type.equalsIgnoreCase(OrderFormat.TITLE) && titleDelegate != null) {
        return titleDelegate.makeSortString(value, language);
      }

      if (type.equalsIgnoreCase(OrderFormat.TEXT) && textDelegate != null) {
        return textDelegate.makeSortString(value, language);
      }
    }

    return value;
  }