package annotations.util;
/*>>>
import org.checkerframework.checker.nullness.qual.*;
*/
/**
* {@link EqualByStringRepresentation} is a "mix-in" class for objects that are
* equal if and only if their {@link #toString toString} representations are
* equal. {@link EqualByStringRepresentation} provides implementations of
* {@link #equals} and {@link #hashCode} in terms of {@link #toString}.
*/
public abstract class EqualByStringRepresentation {
/**
* {@inheritDoc}
*/
@Override
public abstract String toString();
/**
* {@inheritDoc}
*/
@Override
public final boolean equals(Object that) {
return that != null && this.getClass() == that.getClass()
&& this.toString().equals(that.toString());
}
/**
* {@inheritDoc}
*/
@Override
public final int hashCode() {
return toString().hashCode();
}
}