Javolution 6.0.0 java
WrapperComparatorImpl.java
Go to the documentation of this file.
1 /*
2  * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3  * Copyright (C) 2012 - Javolution (http://javolution.org/)
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and distribute this software is
7  * freely granted, provided that this notice is preserved.
8  */
9 package javolution.util.internal.comparator;
10 
11 import java.io.Serializable;
12 import java.util.Comparator;
13 
15 
21 public final class WrapperComparatorImpl<E> implements Equality<E>,
22  Serializable {
23 
24  private static final long serialVersionUID = 8775282553794347279L;
25  private final Comparator<? super E> comparator;
26 
27  public WrapperComparatorImpl(Comparator<? super E> comparator) {
28  this.comparator = comparator;
29  }
30 
31  @Override
32  public int hashCodeOf(E obj) {
33  throw new UnsupportedOperationException(
34  "Standard comparator (java.util.Comparator) cannot be used for "
35  + "hashcode calculations; please use a coherent equality comparator "
36  + "instead (e.g. javolution.util.function.Equality).");
37  }
38 
39  @Override
40  public boolean areEqual(E e1, E e2) {
41  return (e1 == e2) || (e1 != null && (comparator.compare(e1, e2) == 0));
42  }
43 
44  @Override
45  public int compare(E left, E right) {
46  if (left == right)
47  return 0;
48  if (left == null)
49  return -1;
50  if (right == null)
51  return 1;
52  return comparator.compare(left, right);
53  }
54 }
javolution
javolution.util.internal.comparator.WrapperComparatorImpl.hashCodeOf
int hashCodeOf(E obj)
Definition: WrapperComparatorImpl.java:32
javolution.util.internal.comparator.WrapperComparatorImpl.compare
int compare(E left, E right)
Definition: WrapperComparatorImpl.java:45
javolution.util.function.Equality
Definition: Equality.java:39
javolution.util.internal.comparator.WrapperComparatorImpl.comparator
final Comparator<? super E > comparator
Definition: WrapperComparatorImpl.java:25
javolution.util.internal.comparator.WrapperComparatorImpl
Definition: WrapperComparatorImpl.java:22
javolution.util.internal.comparator.WrapperComparatorImpl.WrapperComparatorImpl
WrapperComparatorImpl(Comparator<? super E > comparator)
Definition: WrapperComparatorImpl.java:27
javolution.util.function
Definition: Consumer.java:9
javolution.util.internal.comparator.WrapperComparatorImpl.serialVersionUID
static final long serialVersionUID
Definition: WrapperComparatorImpl.java:24
javolution.util.internal.comparator.WrapperComparatorImpl.areEqual
boolean areEqual(E e1, E e2)
Definition: WrapperComparatorImpl.java:40
javolution.util
Definition: FastBitSet.java:9