Coverage Summary for Class: ReverseOrdering (com.google.common.collect)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| ReverseOrdering | 0% (0/1) | 0% (0/14) | 0% (0/21) |
1 /* 2 * Copyright (C) 2007 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.common.collect; 18 19 import static com.google.common.base.Preconditions.checkNotNull; 20 21 import com.google.common.annotations.GwtCompatible; 22 import java.io.Serializable; 23 import java.util.Iterator; 24 import org.checkerframework.checker.nullness.qual.Nullable; 25 26 /** An ordering that uses the reverse of a given order. */ 27 @GwtCompatible(serializable = true) 28 final class ReverseOrdering<T> extends Ordering<T> implements Serializable { 29 final Ordering<? super T> forwardOrder; 30 31 ReverseOrdering(Ordering<? super T> forwardOrder) { 32 this.forwardOrder = checkNotNull(forwardOrder); 33 } 34 35 @Override 36 public int compare(T a, T b) { 37 return forwardOrder.compare(b, a); 38 } 39 40 @SuppressWarnings("unchecked") // how to explain? 41 @Override 42 public <S extends T> Ordering<S> reverse() { 43 return (Ordering<S>) forwardOrder; 44 } 45 46 // Override the min/max methods to "hoist" delegation outside loops 47 48 @Override 49 public <E extends T> E min(E a, E b) { 50 return forwardOrder.max(a, b); 51 } 52 53 @Override 54 public <E extends T> E min(E a, E b, E c, E... rest) { 55 return forwardOrder.max(a, b, c, rest); 56 } 57 58 @Override 59 public <E extends T> E min(Iterator<E> iterator) { 60 return forwardOrder.max(iterator); 61 } 62 63 @Override 64 public <E extends T> E min(Iterable<E> iterable) { 65 return forwardOrder.max(iterable); 66 } 67 68 @Override 69 public <E extends T> E max(E a, E b) { 70 return forwardOrder.min(a, b); 71 } 72 73 @Override 74 public <E extends T> E max(E a, E b, E c, E... rest) { 75 return forwardOrder.min(a, b, c, rest); 76 } 77 78 @Override 79 public <E extends T> E max(Iterator<E> iterator) { 80 return forwardOrder.min(iterator); 81 } 82 83 @Override 84 public <E extends T> E max(Iterable<E> iterable) { 85 return forwardOrder.min(iterable); 86 } 87 88 @Override 89 public int hashCode() { 90 return -forwardOrder.hashCode(); 91 } 92 93 @Override 94 public boolean equals(@Nullable Object object) { 95 if (object == this) { 96 return true; 97 } 98 if (object instanceof ReverseOrdering) { 99 ReverseOrdering<?> that = (ReverseOrdering<?>) object; 100 return this.forwardOrder.equals(that.forwardOrder); 101 } 102 return false; 103 } 104 105 @Override 106 public String toString() { 107 return forwardOrder + ".reverse()"; 108 } 109 110 private static final long serialVersionUID = 0; 111 }