/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.internal.util.compare;

import java.util.Arrays;

Helper for equality determination
Author:Gavin King, Steve Ebersole
/** * Helper for equality determination * * @author Gavin King * @author Steve Ebersole */
public final class EqualsHelper { @SuppressWarnings("SimplifiableIfStatement") public static boolean equals(final Object x, final Object y) { if ( x == y ) { return true; } if ( x == null || y == null ) { // One is null, but the other is not (otherwise the `x == y` check would have passed). // null can never equal a non-null return false; } return x.equals( y ); }
Like the legacy Object.equals method, but handles array-specific checks
Params:
  • x – One value to check
  • y – The other value
Returns:true if the 2 values are equal; false otherwise.
/** * Like the legacy {@link #equals} method, but handles array-specific checks * * @param x One value to check * @param y The other value * * @return {@code true} if the 2 values are equal; {@code false} otherwise. */
public static boolean areEqual(final Object x, final Object y) { if ( x == y ) { return true; } if ( x == null || y == null ) { // One is null, but the other is not (otherwise the `x == y` check would have passed). // null can never equal a non-null return false; } if ( x.equals( y ) ) { return true; } // Check for possibility of arrays final Class xClass = x.getClass(); final Class yClass = y.getClass(); if ( xClass.isArray() && yClass.isArray() ) { if ( xClass.equals( yClass ) ) { if ( x instanceof boolean[] ) { return Arrays.equals( (boolean[]) x, (boolean[]) y ); } else if ( x instanceof byte[] ) { return Arrays.equals( (byte[]) x, (byte[]) y ); } else if ( x instanceof char[] ) { return Arrays.equals( (char[]) x, (char[]) y ); } else if ( x instanceof short[] ) { return Arrays.equals( (short[]) x, (short[]) y ); } else if ( x instanceof int[] ) { return Arrays.equals( (int[]) x, (int[]) y ); } else if ( x instanceof long[] ) { return Arrays.equals( (long[]) x, (long[]) y ); } else if ( x instanceof double[] ) { return Arrays.equals( (double[]) x, (double[]) y ); } else if ( x instanceof float[] ) { return Arrays.equals( (float[]) x, (float[]) y ); } } return Arrays.equals( (Object[]) x, (Object[]) y ); } return false; }
Private ctor - disallow instantiation
/** * Private ctor - disallow instantiation */
private EqualsHelper() { // disallow instantiation } }