public class org.apache.commons.collections.sequence.SequencesComparator extends java.lang.Object
{
private final java.util.List sequence;
private final java.util.List sequence;
private final org.apache.commons.collections.Equator equator;
private final int[] vDown;
private final int[] vUp;
public void <init>(java.util.List, java.util.List)
{
org.apache.commons.collections.sequence.SequencesComparator v;
java.util.List v, v;
org.apache.commons.collections.functors.DefaultEquator v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = staticinvoke <org.apache.commons.collections.functors.DefaultEquator: org.apache.commons.collections.functors.DefaultEquator defaultEquator()>();
specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: void <init>(java.util.List,java.util.List,org.apache.commons.collections.Equator)>(v, v, v);
return;
}
public void <init>(java.util.List, java.util.List, org.apache.commons.collections.Equator)
{
org.apache.commons.collections.Equator v;
org.apache.commons.collections.sequence.SequencesComparator v;
java.util.List v, v;
int[] v, v;
int v, v, v, v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: org.apache.commons.collections.Equator;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1> = v;
v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2> = v;
v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.Equator equator> = v;
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = v + v;
v = v + 2;
v = newarray (int)[v];
v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown> = v;
v = newarray (int)[v];
v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp> = v;
return;
}
public org.apache.commons.collections.sequence.EditScript getScript()
{
org.apache.commons.collections.sequence.SequencesComparator v;
java.util.List v, v;
org.apache.commons.collections.sequence.EditScript v;
int v, v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v = new org.apache.commons.collections.sequence.EditScript;
specialinvoke v.<org.apache.commons.collections.sequence.EditScript: void <init>()>();
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: void buildScript(int,int,int,int,org.apache.commons.collections.sequence.EditScript)>(0, v, 0, v, v);
return v;
}
private org.apache.commons.collections.sequence.SequencesComparator$Snake buildSnake(int, int, int, int)
{
org.apache.commons.collections.Equator v;
org.apache.commons.collections.sequence.SequencesComparator$Snake v;
org.apache.commons.collections.sequence.SequencesComparator v;
java.util.List v, v;
int v, v, v, v, v, v, v;
java.lang.Object v, v;
boolean v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v;
label:
v = v - v;
if v >= v goto label;
if v >= v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.Equator equator>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = v - v;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<org.apache.commons.collections.Equator: boolean equate(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = new org.apache.commons.collections.sequence.SequencesComparator$Snake;
specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: void <init>(int,int,int)>(v, v, v);
return v;
}
private org.apache.commons.collections.sequence.SequencesComparator$Snake getMiddleSnake(int, int, int, int)
{
java.lang.RuntimeException v;
org.apache.commons.collections.Equator v, v;
org.apache.commons.collections.sequence.SequencesComparator v;
int[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
java.util.List v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.collections.sequence.SequencesComparator$Snake v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v - v;
v = v - v;
if v == 0 goto label;
if v != 0 goto label;
label:
return null;
label:
v = v - v;
v = v + v;
v = v % 2;
if v != 0 goto label;
v = v;
goto label;
label:
v = v + 1;
label:
v = v / 2;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = 1 + v;
v[v] = v;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = 1 + v;
v = v + 1;
v[v] = v;
v = 0;
label:
if v > v goto label;
v = neg v;
label:
if v > v goto label;
v = v + v;
v = neg v;
if v == v goto label;
if v == v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v - 1;
v = v[v];
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v + 1;
v = v[v];
if v >= v goto label;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v + 1;
v = v[v];
v[v] = v;
goto label;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v - 1;
v = v[v];
v = v + 1;
v[v] = v;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v[v];
v = v - v;
v = v + v;
v = v - v;
label:
if v >= v goto label;
if v >= v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.Equator equator>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<org.apache.commons.collections.Equator: boolean equate(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v + 1;
v[v] = v;
v = v + 1;
goto label;
label:
v = v % 2;
if v == 0 goto label;
v = v - v;
if v > v goto label;
v = v + v;
if v > v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v - v;
v = v[v];
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v[v];
if v > v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v - v;
v = v[v];
v = v + v;
v = v - v;
v = specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.sequence.SequencesComparator$Snake buildSnake(int,int,int,int)>(v, v, v, v);
return v;
label:
v = v + 2;
goto label;
label:
v = v - v;
label:
v = v + v;
if v > v goto label;
v = v + v;
v = v - v;
v = v - v;
if v == v goto label;
v = v + v;
if v == v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v + 1;
v = v[v];
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v - 1;
v = v[v];
if v > v goto label;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v + 1;
v = v[v];
v = v - 1;
v[v] = v;
goto label;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v - 1;
v = v[v];
v[v] = v;
label:
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v[v];
v = v - 1;
v = v - v;
v = v + v;
v = v - v;
label:
if v < v goto label;
if v < v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.Equator equator>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<org.apache.commons.collections.Equator: boolean equate(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v;
v = v - 1;
v[v] = v;
v = v - 1;
goto label;
label:
v = v % 2;
if v != 0 goto label;
v = neg v;
if v > v goto label;
if v > v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v[v];
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vDown>;
v = v + v;
v = v[v];
if v > v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: int[] vUp>;
v = v[v];
v = v + v;
v = v - v;
v = specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.sequence.SequencesComparator$Snake buildSnake(int,int,int,int)>(v, v, v, v);
return v;
label:
v = v + 2;
goto label;
label:
v = v + 1;
goto label;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Internal Error");
throw v;
}
private void buildScript(int, int, int, int, org.apache.commons.collections.sequence.EditScript)
{
org.apache.commons.collections.Equator v;
org.apache.commons.collections.sequence.SequencesComparator v;
boolean v;
org.apache.commons.collections.sequence.InsertCommand v;
java.util.List v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.commons.collections.sequence.DeleteCommand v;
org.apache.commons.collections.sequence.KeepCommand v, v;
org.apache.commons.collections.sequence.SequencesComparator$Snake v;
org.apache.commons.collections.sequence.EditScript v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.commons.collections.sequence.SequencesComparator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: org.apache.commons.collections.sequence.EditScript;
v = specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.sequence.SequencesComparator$Snake getMiddleSnake(int,int,int,int)>(v, v, v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getStart()>();
if v != v goto label;
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getDiag()>();
v = v - v;
if v == v goto label;
label:
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getEnd()>();
if v != v goto label;
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getDiag()>();
v = v - v;
if v != v goto label;
label:
v = v;
v = v;
label:
if v < v goto label;
if v >= v goto label;
label:
if v >= v goto label;
if v >= v goto label;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: org.apache.commons.collections.Equator equator>;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<org.apache.commons.collections.Equator: boolean equate(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = new org.apache.commons.collections.sequence.KeepCommand;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
specialinvoke v.<org.apache.commons.collections.sequence.KeepCommand: void <init>(java.lang.Object)>(v);
virtualinvoke v.<org.apache.commons.collections.sequence.EditScript: void append(org.apache.commons.collections.sequence.KeepCommand)>(v);
v = v + 1;
v = v + 1;
goto label;
label:
v = v - v;
v = v - v;
if v <= v goto label;
v = new org.apache.commons.collections.sequence.DeleteCommand;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
specialinvoke v.<org.apache.commons.collections.sequence.DeleteCommand: void <init>(java.lang.Object)>(v);
virtualinvoke v.<org.apache.commons.collections.sequence.EditScript: void append(org.apache.commons.collections.sequence.DeleteCommand)>(v);
v = v + 1;
goto label;
label:
v = new org.apache.commons.collections.sequence.InsertCommand;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence2>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
specialinvoke v.<org.apache.commons.collections.sequence.InsertCommand: void <init>(java.lang.Object)>(v);
virtualinvoke v.<org.apache.commons.collections.sequence.EditScript: void append(org.apache.commons.collections.sequence.InsertCommand)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getStart()>();
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getStart()>();
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getDiag()>();
v = v - v;
specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: void buildScript(int,int,int,int,org.apache.commons.collections.sequence.EditScript)>(v, v, v, v, v);
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getStart()>();
label:
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getEnd()>();
if v >= v goto label;
v = new org.apache.commons.collections.sequence.KeepCommand;
v = v.<org.apache.commons.collections.sequence.SequencesComparator: java.util.List sequence1>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
specialinvoke v.<org.apache.commons.collections.sequence.KeepCommand: void <init>(java.lang.Object)>(v);
virtualinvoke v.<org.apache.commons.collections.sequence.EditScript: void append(org.apache.commons.collections.sequence.KeepCommand)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getEnd()>();
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getEnd()>();
v = virtualinvoke v.<org.apache.commons.collections.sequence.SequencesComparator$Snake: int getDiag()>();
v = v - v;
specialinvoke v.<org.apache.commons.collections.sequence.SequencesComparator: void buildScript(int,int,int,int,org.apache.commons.collections.sequence.EditScript)>(v, v, v, v, v);
label:
return;
}
}