class GetterLazyBoolean {
private final 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 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>>();
private static boolean calculateBoolean() {
return true;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof GetterLazyBoolean)) return false;
final GetterLazyBoolean other = (GetterLazyBoolean)o;
if (!other.canEqual((java.lang.Object)this)) return false;
if (this.isBooleanValue() != other.isBooleanValue()) return false;
return true;
}
@java.lang.SuppressWarnings("all")
public boolean canEqual(final java.lang.Object other) {
return other instanceof GetterLazyBoolean;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = result * PRIME + (this.isBooleanValue() ? 1231 : 1237);
return result;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "GetterLazyBoolean(booleanValue=" + this.isBooleanValue() + ")";
}
@java.lang.SuppressWarnings("all")
public 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();
}
@java.lang.SuppressWarnings("all")
public 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();
}
}