Class Utilities

Object
Utilities

public final class Utilities extends Object
Static methods for object comparisons in different ways (deeply, approximately, etc).
Since:
0.3
  • Method Details

    • equalsIgnoreMetadata

      public static boolean equalsIgnoreMetadata(Object object1, Object object2)
      Compares the specified objects for equality, ignoring metadata. If this method returns true, then:
      • If the two given objects are math transforms, then transforming a set of coordinate values using one transform will produce the same results than transforming the same coordinates with the other transform.
      • If the two given objects are Coordinate Reference Systems (CRS), then a call to find­Operation(crs1, crs2, null) will return an identity operation.
      If a more lenient comparison allowing slight differences in numerical values is wanted, then equals­Approximately(Object, Object) can be used instead.

      Implementation note

      This is a convenience method for the following method call:
      return deepEquals(object1, object2, ComparisonMode.IGNORE_METADATA);
      
      Parameters:
      object1 - the first object to compare (may be null).
      object2 - the second object to compare (may be null).
      Returns:
      true if both objects are equal, ignoring metadata.
      See Also:
    • equalsApproximately

      public static boolean equalsApproximately(Object object1, Object object2)
      Compares the specified objects for equality, ignoring metadata and slight differences in numerical values. If this method returns true, then:
      • If the two given objects are math transforms, then transforming a set of coordinate values using one transform will produce approximately the same results as transforming the same coordinates with the other transform.
      • If the two given objects are Coordinate Reference Systems (CRS), then a call to find­Operation(crs1, crs2, null) will return an operation close to identity.

      Implementation note

      This is a convenience method for the following method call:
      return deepEquals(object1, object2, ComparisonMode.APPROXIMATE);
      
      Parameters:
      object1 - the first object to compare (may be null).
      object2 - the second object to compare (may be null).
      Returns:
      true if both objects are approximately equal.
      See Also:
    • deepEquals

      public static boolean deepEquals(Object object1, Object object2, ComparisonMode mode)
      Tests two objects for equality using the given level of strictness. This method applies the following rules, in order:
      Parameters:
      object1 - the first object to compare, or null.
      object2 - the second object to compare, or null.
      mode - the strictness level of the comparison.
      Returns:
      true if both objects are equal for the given level of strictness.
      See Also:
    • deepHashCode

      public static int deepHashCode(Object object)
      Returns a hash code for the specified object, which may be an array. This method returns one of the following values: This method should be invoked only if the object type is declared exactly as Object, not as some subtype like Object[], String or float[]. In the latter cases, use the appropriate Arrays method instead.
      Parameters:
      object - the object to compute hash code. May be null.
      Returns:
      the hash code of the given object.
    • deepToString

      public static String deepToString(Object object)
      Returns a string representation of the specified object, which may be an array. This method returns one of the following values: This method should be invoked only if the object type is declared exactly as Object, not as some subtype like Object[], Number or float[]. In the latter cases, use the appropriate Arrays method instead.
      Parameters:
      object - the object to format as a string. May be null.
      Returns:
      a string representation of the given object.