class org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution extends java.lang.Object implements org.springframework.util.backoff.BackOffExecution
{
private long currentInterval;
private long currentElapsedTime;
final org.springframework.util.backoff.ExponentialBackOff this$0;
private void <init>(org.springframework.util.backoff.ExponentialBackOff)
{
org.springframework.util.backoff.ExponentialBackOff v;
org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution v;
v := @this: org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution;
v := @parameter: org.springframework.util.backoff.ExponentialBackOff;
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval> = -1L;
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentElapsedTime> = 0L;
return;
}
public long nextBackOff()
{
long v, v, v, v, v;
org.springframework.util.backoff.ExponentialBackOff v;
org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution v;
byte v;
v := @this: org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentElapsedTime>;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0>;
v = v.<org.springframework.util.backoff.ExponentialBackOff: long maxElapsedTime>;
v = v cmp v;
if v < 0 goto label;
return -1L;
label:
v = specialinvoke v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long computeNextInterval()>();
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentElapsedTime>;
v = v + v;
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentElapsedTime> = v;
return v;
}
private long computeNextInterval()
{
long v, v, v, v, v, v, v;
org.springframework.util.backoff.ExponentialBackOff v, v;
org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution v;
byte v, v, v;
v := @this: org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0>;
v = virtualinvoke v.<org.springframework.util.backoff.ExponentialBackOff: long getMaxInterval()>();
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
v = v cmp v;
if v < 0 goto label;
return v;
label:
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
v = v cmp 0L;
if v >= 0 goto label;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0>;
v = virtualinvoke v.<org.springframework.util.backoff.ExponentialBackOff: long getInitialInterval()>();
v = v cmp v;
if v >= 0 goto label;
v = v;
goto label;
label:
v = v;
label:
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval> = v;
goto label;
label:
v = specialinvoke v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long multiplyInterval(long)>(v);
v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval> = v;
label:
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
return v;
}
private long multiplyInterval(long)
{
long v, v, v;
org.springframework.util.backoff.ExponentialBackOff v;
org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution v;
byte v;
double v, v;
v := @this: org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution;
v := @parameter: long;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0>;
v = virtualinvoke v.<org.springframework.util.backoff.ExponentialBackOff: double getMultiplier()>();
v = v * v;
v = v cmp v;
if v <= 0 goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
public java.lang.String toString()
{
long v, v;
org.springframework.util.backoff.ExponentialBackOff v;
org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution v;
byte v;
java.lang.StringBuilder v, v, v;
java.lang.String v, v;
double v;
v := @this: org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("ExponentialBackOff{");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("currentInterval=");
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
v = v cmp 0L;
if v >= 0 goto label;
v = "n/a";
goto label;
label:
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: long currentInterval>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001ms");
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", multiplier=");
v = v.<org.springframework.util.backoff.ExponentialBackOff$ExponentialBackOffExecution: org.springframework.util.backoff.ExponentialBackOff this$0>;
v = virtualinvoke v.<org.springframework.util.backoff.ExponentialBackOff: double getMultiplier()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(double)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(125);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
}