public class org.apache.commons.text.similarity.LevenshteinDistance extends java.lang.Object implements org.apache.commons.text.similarity.EditDistance
{
private static final org.apache.commons.text.similarity.LevenshteinDistance INSTANCE;
private final java.lang.Integer threshold;
public static org.apache.commons.text.similarity.LevenshteinDistance getDefaultInstance()
{
org.apache.commons.text.similarity.LevenshteinDistance v;
v = <org.apache.commons.text.similarity.LevenshteinDistance: org.apache.commons.text.similarity.LevenshteinDistance INSTANCE>;
return v;
}
private static int limitedCompare(java.lang.CharSequence, java.lang.CharSequence, int)
{
int[] v, v, v;
java.lang.CharSequence 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;
char v, v;
java.lang.IllegalArgumentException v, v;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
if v == null goto label;
if v != null goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("CharSequences must not be null");
throw v;
label:
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Threshold must not be negative");
throw v;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v != 0 goto label;
if v > v goto label;
v = v;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
label:
if v != 0 goto label;
if v > v goto label;
v = v;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
label:
if v <= v goto label;
v = v;
v = v;
v = v;
v = v;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
label:
v = v - v;
if v <= v goto label;
v = (int) -1;
return v;
label:
v = v + 1;
v = newarray (int)[v];
v = v + 1;
v = newarray (int)[v];
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
v = 0;
label:
if v >= v goto label;
v[v] = v;
v = v + 1;
goto label;
label:
v = lengthof v;
staticinvoke <java.util.Arrays: void fill(int[],int,int,int)>(v, v, v, 2147483647);
staticinvoke <java.util.Arrays: void fill(int[],int)>(v, 2147483647);
v = 1;
label:
if v > v goto label;
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v[0] = v;
v = v - v;
v = staticinvoke <java.lang.Math: int max(int,int)>(1, v);
v = 2147483647 - v;
if v <= v goto label;
v = v;
goto label;
label:
v = v + v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
label:
v = v;
if v <= 1 goto label;
v = v - 1;
v[v] = 2147483647;
label:
v = 2147483647;
v = v;
label:
if v > v goto label;
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != v goto label;
v = v - 1;
v = v[v];
v[v] = v;
goto label;
label:
v = v - 1;
v = v[v];
v = v[v];
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v - 1;
v = v[v];
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = 1 + v;
v[v] = v;
label:
v = v[v];
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
goto label;
label:
if v <= v goto label;
v = (int) -1;
return v;
label:
v = v;
v = v;
v = v;
v = v + 1;
goto label;
label:
v = v[v];
if v > v goto label;
v = v[v];
return v;
label:
v = (int) -1;
return v;
}
private static int unlimitedCompare(java.lang.CharSequence, java.lang.CharSequence)
{
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
java.lang.CharSequence v, v, v;
char v, v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
if v == null goto label;
if v != null goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("CharSequences must not be null");
throw v;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v != 0 goto label;
return v;
label:
if v != 0 goto label;
return v;
label:
if v <= v goto label;
v = v;
v = v;
v = v;
v = v;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
label:
v = v + 1;
v = newarray (int)[v];
v = 0;
label:
if v > v goto label;
v[v] = v;
v = v + 1;
goto label;
label:
v = 1;
label:
if v > v goto label;
v = v[0];
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v[0] = v;
v = 1;
label:
if v > v goto label;
v = v[v];
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != v goto label;
v = 0;
goto label;
label:
v = 1;
label:
v = v - 1;
v = v[v];
v = v + 1;
v = v[v];
v = v + 1;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v[v] = v;
v = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = v[v];
return v;
}
public void <init>()
{
org.apache.commons.text.similarity.LevenshteinDistance v;
v := @this: org.apache.commons.text.similarity.LevenshteinDistance;
specialinvoke v.<org.apache.commons.text.similarity.LevenshteinDistance: void <init>(java.lang.Integer)>(null);
return;
}
public void <init>(java.lang.Integer)
{
int v;
org.apache.commons.text.similarity.LevenshteinDistance v;
java.lang.IllegalArgumentException v;
java.lang.Integer v;
v := @this: org.apache.commons.text.similarity.LevenshteinDistance;
v := @parameter: java.lang.Integer;
specialinvoke v.<java.lang.Object: void <init>()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Threshold must not be negative");
throw v;
label:
v.<org.apache.commons.text.similarity.LevenshteinDistance: java.lang.Integer threshold> = v;
return;
}
public java.lang.Integer apply(java.lang.CharSequence, java.lang.CharSequence)
{
java.lang.CharSequence v, v;
org.apache.commons.text.similarity.LevenshteinDistance v;
java.lang.Integer v, v, v, v;
int v, v, v;
v := @this: org.apache.commons.text.similarity.LevenshteinDistance;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v = v.<org.apache.commons.text.similarity.LevenshteinDistance: java.lang.Integer threshold>;
if v == null goto label;
v = v.<org.apache.commons.text.similarity.LevenshteinDistance: java.lang.Integer threshold>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = staticinvoke <org.apache.commons.text.similarity.LevenshteinDistance: int limitedCompare(java.lang.CharSequence,java.lang.CharSequence,int)>(v, v, v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
label:
v = staticinvoke <org.apache.commons.text.similarity.LevenshteinDistance: int unlimitedCompare(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
}
public java.lang.Integer getThreshold()
{
org.apache.commons.text.similarity.LevenshteinDistance v;
java.lang.Integer v;
v := @this: org.apache.commons.text.similarity.LevenshteinDistance;
v = v.<org.apache.commons.text.similarity.LevenshteinDistance: java.lang.Integer threshold>;
return v;
}
static void <clinit>()
{
org.apache.commons.text.similarity.LevenshteinDistance v;
v = new org.apache.commons.text.similarity.LevenshteinDistance;
specialinvoke v.<org.apache.commons.text.similarity.LevenshteinDistance: void <init>()>();
<org.apache.commons.text.similarity.LevenshteinDistance: org.apache.commons.text.similarity.LevenshteinDistance INSTANCE> = v;
return;
}
}