public abstract class org.apache.isis.commons.internal.binding._BindableAbstract extends java.lang.Object implements org.apache.isis.commons.binding.Bindable
{
private java.lang.Object value;
private org.apache.isis.commons.binding.Observable observable;
private org.apache.isis.commons.binding.InvalidationListener invalidationListener;
private boolean valid;
private org.apache.isis.commons.internal.binding.InternalUtil util;
private java.util.function.UnaryOperator valueRefiner;
private java.util.function.UnaryOperator valueGuard;
public void <init>()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.util.function.UnaryOperator v, v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable> = null;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener> = null;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean valid> = 1;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = null;
v = staticinvoke <java.util.function.UnaryOperator: java.util.function.UnaryOperator identity()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueRefiner> = v;
v = staticinvoke <java.util.function.UnaryOperator: java.util.function.UnaryOperator identity()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueGuard> = v;
return;
}
public void <init>(java.lang.Object)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.lang.Object v;
java.util.function.UnaryOperator v, v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable> = null;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener> = null;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean valid> = 1;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = null;
v = staticinvoke <java.util.function.UnaryOperator: java.util.function.UnaryOperator identity()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueRefiner> = v;
v = staticinvoke <java.util.function.UnaryOperator: java.util.function.UnaryOperator identity()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueGuard> = v;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object value> = v;
return;
}
public void addListener(org.apache.isis.commons.binding.InvalidationListener)
{
org.apache.isis.commons.internal.binding.InternalUtil v, v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.InvalidationListener v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.InvalidationListener;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util>;
v = staticinvoke <org.apache.isis.commons.internal.binding.InternalUtil: org.apache.isis.commons.internal.binding.InternalUtil addListener(org.apache.isis.commons.internal.binding.InternalUtil,org.apache.isis.commons.binding.Observable,org.apache.isis.commons.binding.InvalidationListener)>(v, v, v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = v;
return;
}
public void removeListener(org.apache.isis.commons.binding.InvalidationListener)
{
org.apache.isis.commons.internal.binding.InternalUtil v, v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.InvalidationListener v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.InvalidationListener;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util>;
v = staticinvoke <org.apache.isis.commons.internal.binding.InternalUtil: org.apache.isis.commons.internal.binding.InternalUtil removeListener(org.apache.isis.commons.internal.binding.InternalUtil,org.apache.isis.commons.binding.InvalidationListener)>(v, v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = v;
return;
}
public void addListener(org.apache.isis.commons.binding.ChangeListener)
{
org.apache.isis.commons.internal.binding.InternalUtil v, v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.ChangeListener v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.ChangeListener;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util>;
v = staticinvoke <org.apache.isis.commons.internal.binding.InternalUtil: org.apache.isis.commons.internal.binding.InternalUtil addListener(org.apache.isis.commons.internal.binding.InternalUtil,org.apache.isis.commons.binding.Observable,org.apache.isis.commons.binding.ChangeListener)>(v, v, v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = v;
return;
}
public void removeListener(org.apache.isis.commons.binding.ChangeListener)
{
org.apache.isis.commons.internal.binding.InternalUtil v, v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.ChangeListener v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.ChangeListener;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util>;
v = staticinvoke <org.apache.isis.commons.internal.binding.InternalUtil: org.apache.isis.commons.internal.binding.InternalUtil removeListener(org.apache.isis.commons.internal.binding.InternalUtil,org.apache.isis.commons.binding.ChangeListener)>(v, v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util> = v;
return;
}
public void bindBidirectional(org.apache.isis.commons.binding.Bindable)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.Bindable v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.Bindable;
staticinvoke <org.apache.isis.commons.internal.binding.InternalBidirectionalBinding: org.apache.isis.commons.internal.binding.InternalBidirectionalBinding bind(org.apache.isis.commons.binding.Bindable,org.apache.isis.commons.binding.Bindable)>(v, v);
return;
}
public void unbindBidirectional(org.apache.isis.commons.binding.Bindable)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.Bindable v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.Bindable;
staticinvoke <org.apache.isis.commons.internal.binding.InternalBidirectionalBinding: void unbind(org.apache.isis.commons.binding.Bindable,org.apache.isis.commons.binding.Bindable)>(v, v);
return;
}
public java.lang.Object getValue()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.lang.Object v, v;
java.util.function.UnaryOperator v;
org.apache.isis.commons.binding.Observable v, v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean valid> = 1;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
if v != null goto label;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object value>;
goto label;
label:
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
v = interfaceinvoke v.<org.apache.isis.commons.binding.Observable: java.lang.Object getValue()>();
label:
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueRefiner>;
v = interfaceinvoke v.<java.util.function.UnaryOperator: java.lang.Object apply(java.lang.Object)>(v);
return v;
}
public void setValue(java.lang.Object)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.lang.Object v, v, v;
java.util.function.UnaryOperator v;
java.lang.RuntimeException v;
boolean v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean isBound()>();
if v == 0 goto label;
v = staticinvoke <org.apache.isis.commons.internal.exceptions._Exceptions: java.lang.RuntimeException unrecoverable(java.lang.String)>("Cannot set value on a bound bindable.");
throw v;
label:
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueGuard>;
v = interfaceinvoke v.<java.util.function.UnaryOperator: java.lang.Object apply(java.lang.Object)>(v);
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object value>;
if v == v goto label;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object value> = v;
specialinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void markInvalid()>();
label:
return;
}
public boolean isBound()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.Observable v;
boolean v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void bind(org.apache.isis.commons.binding.Observable)
{
org.apache.isis.commons.internal.binding._BindableAbstract$WeakInvalidationListener v;
org.apache.isis.commons.binding.Observable v, v, v;
java.lang.NullPointerException v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.InvalidationListener v, v;
boolean v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: org.apache.isis.commons.binding.Observable;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("newObservable is marked non-null but is null");
throw v;
label:
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void unbind()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable> = v;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener>;
if v != null goto label;
v = new org.apache.isis.commons.internal.binding._BindableAbstract$WeakInvalidationListener;
specialinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract$WeakInvalidationListener: void <init>(org.apache.isis.commons.internal.binding._BindableAbstract)>(v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener> = v;
label:
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener>;
interfaceinvoke v.<org.apache.isis.commons.binding.Observable: void addListener(org.apache.isis.commons.binding.InvalidationListener)>(v);
specialinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void markInvalid()>();
label:
return;
}
public void unbind()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.binding.InvalidationListener v;
java.lang.Object v;
org.apache.isis.commons.binding.Observable v, v, v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
if v == null goto label;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
v = interfaceinvoke v.<org.apache.isis.commons.binding.Observable: java.lang.Object getValue()>();
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object value> = v;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable>;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.InvalidationListener invalidationListener>;
interfaceinvoke v.<org.apache.isis.commons.binding.Observable: void removeListener(org.apache.isis.commons.binding.InvalidationListener)>(v);
v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.binding.Observable observable> = null;
label:
return;
}
protected void fireValueChanged()
{
org.apache.isis.commons.internal.binding.InternalUtil v;
org.apache.isis.commons.internal.binding._BindableAbstract v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: org.apache.isis.commons.internal.binding.InternalUtil util>;
staticinvoke <org.apache.isis.commons.internal.binding.InternalUtil: void fireValueChanged(org.apache.isis.commons.internal.binding.InternalUtil)>(v);
return;
}
protected void onInvalidated()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
return;
}
public org.apache.isis.commons.binding.Observable map(java.util.function.Function)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
org.apache.isis.commons.internal.binding._Observables$LazyObservable v;
java.util.function.Function v;
java.util.function.Supplier v;
org.apache.isis.commons.binding.ChangeListener v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.util.function.Function;
v = staticinvoke <org.apache.isis.commons.internal.binding._BindableAbstract$lambda_map_0__130: java.util.function.Supplier bootstrap$(org.apache.isis.commons.internal.binding._BindableAbstract,java.util.function.Function)>(v, v);
v = staticinvoke <org.apache.isis.commons.internal.binding._Observables: org.apache.isis.commons.internal.binding._Observables$LazyObservable lazy(java.util.function.Supplier)>(v);
v = staticinvoke <org.apache.isis.commons.internal.binding._BindableAbstract$lambda_map_1__131: org.apache.isis.commons.binding.ChangeListener bootstrap$(org.apache.isis.commons.internal.binding._Observables$LazyObservable,java.util.function.Function)>(v, v);
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void addListener(org.apache.isis.commons.binding.ChangeListener)>(v);
return v;
}
public org.apache.isis.commons.binding.Bindable mapToBindable(java.util.function.Function, java.util.function.Function)
{
java.util.concurrent.atomic.AtomicBoolean v, v;
java.util.function.Function v, v;
org.apache.isis.commons.binding.ChangeListener v, v;
org.apache.isis.commons.internal.binding._BindableAbstract v, v;
java.lang.Object v, v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.util.function.Function;
v := @parameter: java.util.function.Function;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v = virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
v = staticinvoke <org.apache.isis.commons.internal.binding._Bindables: org.apache.isis.commons.internal.binding._BindableAbstract forValue(java.lang.Object)>(v);
v = staticinvoke <org.apache.isis.commons.internal.binding._BindableAbstract$lambda_mapToBindable_2__132: org.apache.isis.commons.binding.ChangeListener bootstrap$(java.util.concurrent.atomic.AtomicBoolean,java.util.concurrent.atomic.AtomicBoolean,org.apache.isis.commons.internal.binding._BindableAbstract,java.util.function.Function)>(v, v, v, v);
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void addListener(org.apache.isis.commons.binding.ChangeListener)>(v);
v = staticinvoke <org.apache.isis.commons.internal.binding._BindableAbstract$lambda_mapToBindable_3__133: org.apache.isis.commons.binding.ChangeListener bootstrap$(org.apache.isis.commons.internal.binding._BindableAbstract,java.util.concurrent.atomic.AtomicBoolean,java.util.concurrent.atomic.AtomicBoolean,java.util.function.Function)>(v, v, v, v);
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void addListener(org.apache.isis.commons.binding.ChangeListener)>(v);
return v;
}
private void markInvalid()
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
boolean v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v = v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean valid>;
if v == 0 goto label;
v.<org.apache.isis.commons.internal.binding._BindableAbstract: boolean valid> = 0;
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void onInvalidated()>();
virtualinvoke v.<org.apache.isis.commons.internal.binding._BindableAbstract: void fireValueChanged()>();
label:
return;
}
public void setValueRefiner(java.util.function.UnaryOperator)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.util.function.UnaryOperator v;
java.lang.NullPointerException v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.util.function.UnaryOperator;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("valueRefiner is marked non-null but is null");
throw v;
label:
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueRefiner> = v;
return;
}
public void setValueGuard(java.util.function.UnaryOperator)
{
org.apache.isis.commons.internal.binding._BindableAbstract v;
java.util.function.UnaryOperator v;
java.lang.NullPointerException v;
v := @this: org.apache.isis.commons.internal.binding._BindableAbstract;
v := @parameter: java.util.function.UnaryOperator;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("valueGuard is marked non-null but is null");
throw v;
label:
v.<org.apache.isis.commons.internal.binding._BindableAbstract: java.util.function.UnaryOperator valueGuard> = v;
return;
}
}