List of usage examples for com.google.common.collect ComparisonChain compare
public abstract <T> ComparisonChain compare(@Nullable T left, @Nullable T right, Comparator<T> comparator);
From source file:org.apache.isis.applib.util.ObjectContractsLegacy.java
private static <T> int compare(final T p, final T q, final Iterable<String> propertyNamesIter) { if (p == null) { return -1; }/*from w ww . ja v a 2s .c o m*/ if (q == null) { return +1; } if (p.getClass() != q.getClass()) { // just sort on the class type return Ordering.natural().onResultOf((Function<Object, String>) o -> o.getClass().getSimpleName()) .compare(p, q); } final Iterable<Clause> clauses = clausesFor(propertyNamesIter); ComparisonChain chain = ComparisonChain.start(); for (final Clause clause : clauses) { final Comparable<T> propertyValueOfP = _Casts.uncheckedCast(clause.getValueOf(p)); final Comparable<T> propertyValueOfQ = _Casts.uncheckedCast(clause.getValueOf(q)); chain = chain.compare(propertyValueOfP, propertyValueOfQ, clause.getDirection().getOrdering()); } return chain.result(); }
From source file:org.apache.isis.applib.util.ObjectContracts2.java
private static <T> int compare(final T p, final T q, final Iterable<String> propertyNamesIter) { if (p == null) { return -1; }//from ww w.ja va 2s .c o m if (q == null) { return +1; } if (p.getClass() != q.getClass()) { // just sort on the class type return Ordering.natural().onResultOf(new Function<Object, String>() { @Override public String apply(final Object o) { return o.getClass().getSimpleName(); } }).compare(p, q); } final Iterable<Clause> clauses = clausesFor(propertyNamesIter); ComparisonChain chain = ComparisonChain.start(); for (final Clause clause : clauses) { final Comparable<T> propertyValueOfP = (Comparable<T>) clause.getValueOf(p); final Comparable<T> propertyValueOfQ = (Comparable<T>) clause.getValueOf(q); chain = chain.compare(propertyValueOfP, propertyValueOfQ, clause.getDirection().getOrdering()); } return chain.result(); }
From source file:org.apache.metron.indexing.dao.InMemoryDao.java
private static Comparator<SearchResult> sorted(final List<SortField> fields) { return (o1, o2) -> { ComparisonChain chain = ComparisonChain.start(); for (SortField field : fields) { Comparable f1 = (Comparable) o1.getSource().get(field.getField()); Comparable f2 = (Comparable) o2.getSource().get(field.getField()); chain = chain.compare(f1, f2, new ComparableComparator(field.getSortOrder())); }/*from w w w . j a va2 s. co m*/ return chain.result(); }; }
From source file:org.apache.isis.applib.util.ObjectContracts.java
private static <T> int compare(final T p, final T q, final Iterable<String> propertyNamesIter) { final Iterable<Clause> clauses = clausesFor(propertyNamesIter); ComparisonChain chain = ComparisonChain.start(); for (final Clause clause : clauses) { final Comparable<T> propertyValueOfP = (Comparable<T>) clause.getValueOf(p); final Comparable<T> propertyValueOfQ = (Comparable<T>) clause.getValueOf(q); chain = chain.compare(propertyValueOfP, propertyValueOfQ, clause.getDirection().getOrdering()); }/*from w w w .j a v a2 s . c o m*/ return chain.result(); }
From source file:com.dmdirc.addons.ui_swing.components.NicklistComparator.java
@Override public int compare(final GroupChatUser client1, final GroupChatUser client2) { ComparisonChain comparisonChain = ComparisonChain.start(); if (sortByMode) { comparisonChain = comparisonChain.compare(client1.getAllModes(), client2.getAllModes(), client1.getModeComparator()); }/*from ww w.j a v a2s.com*/ if (sortByCase) { comparisonChain = comparisonChain.compare(client1.getNickname(), client2.getNickname()); } else { comparisonChain = comparisonChain.compare(client1.getNickname().toLowerCase(), client2.getNickname().toLowerCase()); } return comparisonChain.result(); }
From source file:org.haiku.haikudepotserver.support.VersionCoordinatesComparator.java
@Override public int compare(VersionCoordinates o1, VersionCoordinates o2) { ComparisonChain chain = ComparisonChain.start() .compare(o1.getMajor(), o2.getMajor(), naturalStringComparator) .compare(o1.getMinor(), o2.getMinor(), naturalStringComparator) .compare(o1.getMicro(), o2.getMicro(), naturalStringComparator); if (!ignorePrereleaseAndRevision) { chain = chain .compare(o1.getPreRelease(), o2.getPreRelease(), Ordering.from(naturalStringComparator).nullsLast()) .compare(o1.getRevision(), o2.getRevision(), Ordering.natural().nullsLast()); }/* w w w. j a va 2 s . c om*/ return chain.result(); }