public static <T1, T2, T3> Comparator<T1> getNullSafeCaseInsensitiveComparator(
            final Function<T1, T2> extractor1,
            final Function<T2, T3> extractor2,
            final Function<T3, String> extractor3) {
        return getNullSafeComparator(
                extractor1,
                extractor2,
                extractor3,
                Comparator.nullsFirst(String.CASE_INSENSITIVE_ORDER));
    }
Creates a null safe case insensitive comparator that can work with stuff like
getDocRef().getName().substring(1,3)
stroom-util-shared/src/main/java/stroom/util/shared/CompareUtil.java