public class org.finos.legend.engine.test.runner.shared.JsonNodeComparator extends java.lang.Object implements java.util.Comparator
{
public static final org.finos.legend.engine.test.runner.shared.JsonNodeComparator NULL_MISSING_EQUIVALENT;
public static final org.finos.legend.engine.test.runner.shared.JsonNodeComparator NULL_BEFORE_MISSING;
public static final org.finos.legend.engine.test.runner.shared.JsonNodeComparator MISSING_BEFORE_NULL;
private final int nullMissingComparison;
private void <init>(int)
{
int v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int nullMissingComparison> = v;
return;
}
public int compare(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.JsonNode v, v;
java.lang.String v, v, v, v;
boolean v, v;
com.fasterxml.jackson.databind.node.JsonNodeType v, v, v, v, v, v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
if v != null goto label;
if v != null goto label;
v = 0;
goto label;
label:
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType MISSING>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.node.JsonNodeType getNodeType()>();
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareNodeTypes(com.fasterxml.jackson.databind.node.JsonNodeType,com.fasterxml.jackson.databind.node.JsonNodeType)>(v, v);
label:
return v;
label:
if v != null goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.node.JsonNodeType getNodeType()>();
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType MISSING>;
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareNodeTypes(com.fasterxml.jackson.databind.node.JsonNodeType,com.fasterxml.jackson.databind.node.JsonNodeType)>(v, v);
return v;
label:
if v != v goto label;
return 0;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.node.JsonNodeType getNodeType()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.node.JsonNodeType getNodeType()>();
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareNodeTypes(com.fasterxml.jackson.databind.node.JsonNodeType,com.fasterxml.jackson.databind.node.JsonNodeType)>(v, v);
if v == 0 goto label;
return v;
label:
v = <org.finos.legend.engine.test.runner.shared.JsonNodeComparator$1: int[] $SwitchMap$com$fasterxml$jackson$databind$node$JsonNodeType>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.node.JsonNodeType: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
default: goto label;
};
label:
return 0;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean booleanValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean booleanValue()>();
v = staticinvoke <java.lang.Boolean: int compare(boolean,boolean)>(v, v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String textValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String textValue()>();
v = virtualinvoke v.<java.lang.String: int compareTo(java.lang.String)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareNumbers(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareBinaries(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareObjects(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compareArrays(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int comparePojos(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String toString()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: int compareTo(java.lang.String)>(v);
return v;
}
private int compareNodeTypes(com.fasterxml.jackson.databind.node.JsonNodeType, com.fasterxml.jackson.databind.node.JsonNodeType)
{
int v, v, v, v, v, v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.node.JsonNodeType v, v, v, v, v, v, v, v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.node.JsonNodeType;
v := @parameter: com.fasterxml.jackson.databind.node.JsonNodeType;
if v != v goto label;
return 0;
label:
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType NULL>;
if v != v goto label;
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType MISSING>;
if v != v goto label;
v = v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int nullMissingComparison>;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
label:
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType MISSING>;
if v != v goto label;
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType NULL>;
if v != v goto label;
v = v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int nullMissingComparison>;
v = neg v;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
label:
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType NULL>;
if v == v goto label;
v = <com.fasterxml.jackson.databind.node.JsonNodeType: com.fasterxml.jackson.databind.node.JsonNodeType MISSING>;
if v != v goto label;
label:
return 1;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.node.JsonNodeType: int compareTo(java.lang.Enum)>(v);
return v;
}
private int compareNumbers(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
java.math.BigDecimal v, v;
com.fasterxml.jackson.databind.JsonNode v, v;
java.math.BigInteger v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
long v, v;
int v, v, v, v, v, v, v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
java.lang.String v, v, v, v, v, v;
double v, v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isIntegralNumber()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isIntegralNumber()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBigInteger()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBigInteger()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.math.BigInteger bigIntegerValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.math.BigInteger bigIntegerValue()>();
v = virtualinvoke v.<java.math.BigInteger: int compareTo(java.math.BigInteger)>(v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: long longValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: long longValue()>();
v = staticinvoke <java.lang.Long: int compare(long,long)>(v, v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isIntegralNumber()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isFloatingPointNumber()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isFloatingPointNumber()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBigDecimal()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBigDecimal()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.math.BigDecimal decimalValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.math.BigDecimal decimalValue()>();
v = virtualinvoke v.<java.math.BigDecimal: int compareTo(java.math.BigDecimal)>(v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: double doubleValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: double doubleValue()>();
v = staticinvoke <java.lang.Double: int compare(double,double)>(v, v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isFloatingPointNumber()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String toString()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: int compareTo(java.lang.String)>(v);
return v;
}
private int compareBinaries(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
byte[] v, v;
java.io.IOException v;
java.lang.RuntimeException v;
byte v, v;
int v, v, v, v, v, v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.JsonNode v, v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: byte[] binaryValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: byte[] binaryValue()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = lengthof v;
v = lengthof v;
v = 0;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
label:
if v >= v goto label;
v = v[v];
v = v[v];
if v == v goto label;
v = v - v;
return v;
label:
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.Integer: int compare(int,int)>(v, v);
return v;
catch java.io.IOException from label to label with label;
}
private int compareArrays(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
int v, v, v, v, v, v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.JsonNode v, v, v, v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
v = 0;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
label:
if v >= v goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(int)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(int)>(v);
v = virtualinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: int compare(com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v);
if v == 0 goto label;
return v;
label:
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.Integer: int compare(int,int)>(v, v);
return v;
}
private int comparePojos(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
java.lang.UnsupportedOperationException v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.JsonNode v, v;
boolean v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("TODO");
throw v;
}
private int compareObjects(com.fasterxml.jackson.databind.JsonNode, com.fasterxml.jackson.databind.JsonNode)
{
java.util.stream.IntStream v, v;
java.util.OptionalInt v;
java.util.function.IntPredicate v;
java.util.function.Supplier v;
int v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v;
com.fasterxml.jackson.databind.JsonNode v, v;
java.util.stream.Collector v;
java.util.function.ToIntFunction v;
java.util.stream.Stream v, v, v, v;
java.lang.Object v;
v := @this: org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = staticinvoke <org.finos.legend.engine.test.runner.shared.JsonNodeComparator: java.util.stream.Stream nodeFieldNameStream(com.fasterxml.jackson.databind.JsonNode)>(v);
v = staticinvoke <org.finos.legend.engine.test.runner.shared.JsonNodeComparator: java.util.stream.Stream nodeFieldNameStream(com.fasterxml.jackson.databind.JsonNode)>(v);
v = staticinvoke <java.util.stream.Stream: java.util.stream.Stream concat(java.util.stream.Stream,java.util.stream.Stream)>(v, v);
v = staticinvoke <org.finos.legend.engine.test.runner.shared.JsonNodeComparator$init__1: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toCollection(java.util.function.Supplier)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = virtualinvoke v.<java.util.TreeSet: java.util.stream.Stream stream()>();
v = staticinvoke <org.finos.legend.engine.test.runner.shared.JsonNodeComparator$lambda_compareObjects_0__2: java.util.function.ToIntFunction bootstrap$(org.finos.legend.engine.test.runner.shared.JsonNodeComparator,com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.JsonNode)>(v, v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction)>(v);
v = staticinvoke <org.finos.legend.engine.test.runner.shared.JsonNodeComparator$lambda_compareObjects_1__3: java.util.function.IntPredicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.IntStream: java.util.stream.IntStream filter(java.util.function.IntPredicate)>(v);
v = interfaceinvoke v.<java.util.stream.IntStream: java.util.OptionalInt findFirst()>();
v = virtualinvoke v.<java.util.OptionalInt: int orElse(int)>(0);
return v;
}
private static java.util.stream.Stream nodeFieldNameStream(com.fasterxml.jackson.databind.JsonNode)
{
java.util.stream.Stream v;
java.util.Iterator v;
int v;
com.fasterxml.jackson.databind.JsonNode v;
java.util.Spliterator v;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fieldNames()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
v = staticinvoke <java.util.Spliterators: java.util.Spliterator spliterator(java.util.Iterator,long,int)>(v, v, 65);
v = staticinvoke <java.util.stream.StreamSupport: java.util.stream.Stream stream(java.util.Spliterator,boolean)>(v, 0);
return v;
}
static void <clinit>()
{
int v;
org.finos.legend.engine.test.runner.shared.JsonNodeComparator v, v, v;
v = new org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: void <init>(int)>(0);
<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: org.finos.legend.engine.test.runner.shared.JsonNodeComparator NULL_MISSING_EQUIVALENT> = v;
v = new org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
v = (int) -1;
specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: void <init>(int)>(v);
<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: org.finos.legend.engine.test.runner.shared.JsonNodeComparator NULL_BEFORE_MISSING> = v;
v = new org.finos.legend.engine.test.runner.shared.JsonNodeComparator;
specialinvoke v.<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: void <init>(int)>(1);
<org.finos.legend.engine.test.runner.shared.JsonNodeComparator: org.finos.legend.engine.test.runner.shared.JsonNodeComparator MISSING_BEFORE_NULL> = v;
return;
}
}