public class oadd.org.apache.curator.x.discovery.strategies.StickyStrategy extends java.lang.Object implements oadd.org.apache.curator.x.discovery.ProviderStrategy
{
private final oadd.org.apache.curator.x.discovery.ProviderStrategy masterStrategy;
private final java.util.concurrent.atomic.AtomicReference ourInstance;
private final java.util.concurrent.atomic.AtomicInteger instanceNumber;
public void <init>(oadd.org.apache.curator.x.discovery.ProviderStrategy)
{
java.util.concurrent.atomic.AtomicInteger v;
int v;
oadd.org.apache.curator.x.discovery.strategies.StickyStrategy v;
java.util.concurrent.atomic.AtomicReference v;
oadd.org.apache.curator.x.discovery.ProviderStrategy v;
v := @this: oadd.org.apache.curator.x.discovery.strategies.StickyStrategy;
v := @parameter: oadd.org.apache.curator.x.discovery.ProviderStrategy;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(null);
v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
v = (int) -1;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(v);
v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicInteger instanceNumber> = v;
v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: oadd.org.apache.curator.x.discovery.ProviderStrategy masterStrategy> = v;
return;
}
public oadd.org.apache.curator.x.discovery.ServiceInstance getInstance(oadd.org.apache.curator.x.discovery.details.InstanceProvider) throws java.lang.Exception
{
oadd.org.apache.curator.x.discovery.strategies.StickyStrategy v;
java.util.concurrent.atomic.AtomicReference v, v, v, v, v;
java.util.concurrent.atomic.AtomicInteger v;
oadd.org.apache.curator.x.discovery.details.InstanceProvider v;
boolean v, v;
oadd.org.apache.curator.x.discovery.strategies.StickyStrategy$1 v;
oadd.org.apache.curator.x.discovery.ServiceInstance v;
java.util.List v;
java.lang.Object v, v, v;
oadd.org.apache.curator.x.discovery.ProviderStrategy v;
v := @this: oadd.org.apache.curator.x.discovery.strategies.StickyStrategy;
v := @parameter: oadd.org.apache.curator.x.discovery.details.InstanceProvider;
v = interfaceinvoke v.<oadd.org.apache.curator.x.discovery.details.InstanceProvider: java.util.List getInstances()>();
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, null);
label:
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: oadd.org.apache.curator.x.discovery.ProviderStrategy masterStrategy>;
v = new oadd.org.apache.curator.x.discovery.strategies.StickyStrategy$1;
specialinvoke v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy$1: void <init>(oadd.org.apache.curator.x.discovery.strategies.StickyStrategy,java.util.List)>(v, v);
v = interfaceinvoke v.<oadd.org.apache.curator.x.discovery.ProviderStrategy: oadd.org.apache.curator.x.discovery.ServiceInstance getInstance(oadd.org.apache.curator.x.discovery.details.InstanceProvider)>(v);
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v == 0 goto label;
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicInteger instanceNumber>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
label:
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicReference ourInstance>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
return v;
}
public int getInstanceNumber()
{
int v;
oadd.org.apache.curator.x.discovery.strategies.StickyStrategy v;
java.util.concurrent.atomic.AtomicInteger v;
v := @this: oadd.org.apache.curator.x.discovery.strategies.StickyStrategy;
v = v.<oadd.org.apache.curator.x.discovery.strategies.StickyStrategy: java.util.concurrent.atomic.AtomicInteger instanceNumber>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
return v;
}
}