code: public <S> BeanComparator<T> using(Comparator<S> c) {
          BeanComparator<T> bc = new BeanComparator<T>(this);
          bc.mOrderByName = mOrderByName;
          bc.mUsingComparator = c;
          bc.mFlags = mFlags;
          return bc;
      }
docs: Specifiy a Comparator to use on just the last {@link #orderBy order-by}
  property. This is good for comparing properties that are not
  {@link Comparable} or for applying special ordering rules for a
  property. If no order-by properties have been specified, then Comparator
  is applied to the compared beans.
  <p>
  Any previously applied String {@link #caseSensitive case-sensitive} or
  {@link #collate collator} settings are overridden by this Comparator.
  If property values being compared are primitive, they are converted to
  their object peers before being passed to the Comparator.
  
  @param c Comparator to use on the last order-by property. Passing null
  restores the default comparison for the last order-by property.