public static <GItem> Comparable<GItem> chainedComparable(final Comparable<? super GItem> comparable1, final Comparable<? super GItem> comparable2)
		throws NullPointerException {
		if (comparable1 == null) throw new NullPointerException("comparable1 = null");
		if (comparable2 == null) throw new NullPointerException("comparable2 = null");
		return new Comparable<GItem>() {

			@Override
			public int compareTo(final GItem item) {
				final int result = comparable1.compareTo(item);
				if (result != 0) return result;
				return comparable2.compareTo(item);
			}

			@Override
			public String toString() {
				return Objects.toInvokeString("chainedComparable", comparable1, comparable2);
			}

		};
	}