code: protected org.cp.elements.util.sort.annotation.Sortable configureComparator(final org.cp.elements.util.sort.annotation.Sortable sortableMetaData) {
      try {
        if (isCustomComparatorAllowed()) {
          Class<? extends Comparator> comparatorClass = sortableMetaData.orderBy();
  
          if (!Comparator.class.equals(comparatorClass)) {
            ComparatorHolder.set(comparatorClass.newInstance());
          }
        }
  
        return sortableMetaData;
      }
      catch (Exception e) {
        throw new SortException(String.format(
          "Error occurred creating an instance of Comparator class (%1$s) to be used by this Sorter (%2$s)!"
            + " The Comparator class (%1$s) must have a public no-arg constructor!",
              sortableMetaData.orderBy().getName(), this.getClass().getName()), e);
      }
    }
docs: Configures the Comparator to use during the sort operation by the calling Thread.
  
  @param sortableMetaData the @Sortable annotation specifying the Comparator to use to order elements in the list
  during the sort operation.
  @return the @Sortable annotation to method chaining purposes.
  @throws SortException if an instance of the Comparator class type specified in the @Sortable annotation cannot be
  constructed.
  @see #configureComparator(Sortable)
  @see #isCustomComparatorAllowed()
  @see ComparatorHolder#set(java.util.Comparator)
  @see org.cp.elements.util.sort.annotation.Sortable#orderBy()
  @see java.util.Comparator