Annotation Interface HashCodeAndEqualsPlugin.Enhance

Enclosing class:
HashCodeAndEqualsPlugin

@Documented @Target(TYPE) @Retention(RUNTIME) public static @interface HashCodeAndEqualsPlugin.Enhance
Instructs the HashCodeAndEqualsPlugin to generate Object.hashCode() and Object.equals(Object) for the annotated class unless these methods are already declared explicitly.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    A strategy for determining the base value of a hash code or equality contract.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Determines if synthetic fields should be included in the hash code and equality contract.
    Determines the base value of any added method, i.e.
    boolean
    Determines if instances subclasses of the instrumented type are accepted upon an equality check.
    boolean
    Determines if fields with primitive types, then enumeration types, then primtive wrapper types and then String types should be compared for equality before fields with other types.
    boolean
    Determines if the hash code constant should be derived of the instrumented type.
  • Element Details

    • invokeSuper

      Determines the base value of any added method, i.e. if hash code or equality is based on the super type or not.
      Returns:
      A strategy for determining the base value.
      Default:
      IF_DECLARED
    • simpleComparisonsFirst

      boolean simpleComparisonsFirst
      Determines if fields with primitive types, then enumeration types, then primtive wrapper types and then String types should be compared for equality before fields with other types. Before determining such a field order, the HashCodeAndEqualsPlugin.Sorted property is always considered first if it is defined.
      Returns:
      true if fields with simple comparison methods should be compared first.
      Default:
      true
    • includeSyntheticFields

      boolean includeSyntheticFields
      Determines if synthetic fields should be included in the hash code and equality contract.
      Returns:
      true if synthetic fields should be included.
      Default:
      false
    • permitSubclassEquality

      boolean permitSubclassEquality
      Determines if instances subclasses of the instrumented type are accepted upon an equality check.
      Returns:
      true if instances subclasses of the instrumented type are accepted upon an equality check.
      Default:
      false
    • useTypeHashConstant

      boolean useTypeHashConstant
      Determines if the hash code constant should be derived of the instrumented type. If permitSubclassEquality() is set to true, this constant is derived of the declared class, otherwise the type hash is computed of the active instance.
      Returns:
      true if the hash code constant should be derived of the instrumented type.
      Default:
      true