Class EqualsHelper


  • @AlfrescoPublicApi
    public class EqualsHelper
    extends java.lang.Object
    Utility class providing helper methods for various types of equals functionality
    Author:
    Derek Hulley
    • Constructor Summary

      Constructors 
      Constructor Description
      EqualsHelper()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean binaryStreamEquals​(java.io.InputStream left, java.io.InputStream right)
      Performs a byte-level comparison between two streams.
      static <K,​V>
      java.util.Map<K,​EqualsHelper.MapValueComparison>
      getMapComparison​(java.util.Map<K,​V> left, java.util.Map<K,​V> right)
      Compare two maps.
      static java.lang.String getMapDifferenceReport​(java.util.Map<?,​?> actual, java.util.Map<?,​?> expected)
      Compare two maps and generate a difference report between the actual and expected values.
      static boolean nullSafeEquals​(java.lang.Object left, java.lang.Object right)
      Performs an equality check left.equals(right) after checking for null values
      static boolean nullSafeEquals​(java.lang.String left, java.lang.String right, boolean ignoreCase)
      Performs an case-sensitive or case-insensitive equality check after checking for null values
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EqualsHelper

        public EqualsHelper()
    • Method Detail

      • nullSafeEquals

        public static boolean nullSafeEquals​(java.lang.Object left,
                                             java.lang.Object right)
        Performs an equality check left.equals(right) after checking for null values
        Parameters:
        left - the Object appearing in the left side of an equals statement
        right - the Object appearing in the right side of an equals statement
        Returns:
        Return true or false even if one or both of the objects are null
      • nullSafeEquals

        public static boolean nullSafeEquals​(java.lang.String left,
                                             java.lang.String right,
                                             boolean ignoreCase)
        Performs an case-sensitive or case-insensitive equality check after checking for null values
        Parameters:
        ignoreCase - true to ignore case
      • binaryStreamEquals

        public static boolean binaryStreamEquals​(java.io.InputStream left,
                                                 java.io.InputStream right)
                                          throws java.io.IOException
        Performs a byte-level comparison between two streams.
        Parameters:
        left - the left stream. This is closed at the end of the operation.
        right - an right stream. This is closed at the end of the operation.
        Returns:
        Returns true if the streams are identical to the last byte
        Throws:
        java.io.IOException
      • getMapDifferenceReport

        public static java.lang.String getMapDifferenceReport​(java.util.Map<?,​?> actual,
                                                              java.util.Map<?,​?> expected)
        Compare two maps and generate a difference report between the actual and expected values. This method is particularly useful during unit tests as the result (if not null) can be appended to a failure message.
        Parameters:
        actual - the map in hand
        expected - the map expected
        Returns:
        Returns a difference report or null if there were no differences. The message starts with a new line and is neatly formatted.