Home | History | Annotate | Download | only in util
      1 package annotations.util;
      2 
      3 /*>>>
      4 import org.checkerframework.checker.nullness.qual.*;
      5 */
      6 
      7 /**
      8  * {@link EqualByStringRepresentation} is a "mix-in" class for objects that are
      9  * equal if and only if their {@link #toString toString} representations are
     10  * equal.  {@link EqualByStringRepresentation} provides implementations of
     11  * {@link #equals} and {@link #hashCode} in terms of {@link #toString}.
     12  */
     13 public abstract class EqualByStringRepresentation {
     14     /**
     15      * {@inheritDoc}
     16      */
     17     @Override
     18     public abstract String toString();
     19 
     20     /**
     21      * {@inheritDoc}
     22      */
     23     @Override
     24     public final boolean equals(Object that) {
     25         return that != null && this.getClass() == that.getClass()
     26                 && this.toString().equals(that.toString());
     27     }
     28 
     29     /**
     30      * {@inheritDoc}
     31      */
     32     @Override
     33     public final int hashCode() {
     34         return toString().hashCode();
     35     }
     36 }
     37