@lombok.EqualsAndHashCode(of = "booleanValue") @lombok.ToString(of = "booleanValue") class GetterLazyBoolean { private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>> booleanValue = new java.util.concurrent.atomic.AtomicReference<java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>>(); private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>> otherBooleanValue = new java.util.concurrent.atomic.AtomicReference<java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>>(); GetterLazyBoolean() { super(); } private static boolean calculateBoolean() { return true; } public @java.lang.SuppressWarnings("all") boolean isBooleanValue() { java.util.concurrent.atomic.AtomicReference<java.lang.Boolean> value = this.booleanValue.get(); if ((value == null)) { synchronized (this.booleanValue) { value = this.booleanValue.get(); if ((value == null)) { final boolean actualValue = calculateBoolean(); value = new java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>(actualValue); this.booleanValue.set(value); } } } return value.get(); } public @java.lang.SuppressWarnings("all") boolean isOtherBooleanValue() { java.util.concurrent.atomic.AtomicReference<java.lang.Boolean> value = this.otherBooleanValue.get(); if ((value == null)) { synchronized (this.otherBooleanValue) { value = this.otherBooleanValue.get(); if ((value == null)) { final boolean actualValue = (! calculateBoolean()); value = new java.util.concurrent.atomic.AtomicReference<java.lang.Boolean>(actualValue); this.otherBooleanValue.set(value); } } } return value.get(); } public @java.lang.Override @java.lang.SuppressWarnings("all") boolean equals(final java.lang.Object o) { if ((o == this)) return true; if ((! (o instanceof GetterLazyBoolean))) return false; final @java.lang.SuppressWarnings("all") GetterLazyBoolean other = (GetterLazyBoolean) o; if ((! other.canEqual((java.lang.Object) this))) return false; if ((this.isBooleanValue() != other.isBooleanValue())) return false; return true; } public @java.lang.SuppressWarnings("all") boolean canEqual(final java.lang.Object other) { return (other instanceof GetterLazyBoolean); } public @java.lang.Override @java.lang.SuppressWarnings("all") int hashCode() { final int PRIME = 31; int result = 1; result = ((result * PRIME) + (this.isBooleanValue() ? 1231 : 1237)); return result; } public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { return (("GetterLazyBoolean(booleanValue=" + this.isBooleanValue()) + ")"); } }