/*
* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
* Use of this file is governed by the BSD 3-clause license that
* can be found in the LICENSE.txt file in the project root.
*/
package org.antlr.v4.runtime.misc;
This default implementation of EqualityComparator
uses object equality for comparisons by calling Object.hashCode
and Object.equals
. Author: Sam Harwell
/**
* This default implementation of {@link EqualityComparator} uses object equality
* for comparisons by calling {@link Object#hashCode} and {@link Object#equals}.
*
* @author Sam Harwell
*/
public final class ObjectEqualityComparator extends AbstractEqualityComparator<Object> {
public static final ObjectEqualityComparator INSTANCE = new ObjectEqualityComparator();
{@inheritDoc}
This implementation returns obj.
hashCode()
.
/**
* {@inheritDoc}
*
* <p>This implementation returns
* {@code obj.}{@link Object#hashCode hashCode()}.</p>
*/
@Override
public int hashCode(Object obj) {
if (obj == null) {
return 0;
}
return obj.hashCode();
}
{@inheritDoc}
This implementation relies on object equality. If both objects are null
, this method returns true
. Otherwise if only a
is null
, this method returns false
. Otherwise, this method returns the result of a.
equals
(b)
.
/**
* {@inheritDoc}
*
* <p>This implementation relies on object equality. If both objects are
* {@code null}, this method returns {@code true}. Otherwise if only
* {@code a} is {@code null}, this method returns {@code false}. Otherwise,
* this method returns the result of
* {@code a.}{@link Object#equals equals}{@code (b)}.</p>
*/
@Override
public boolean equals(Object a, Object b) {
if (a == null) {
return b == null;
}
return a.equals(b);
}
}