public class org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer extends com.fasterxml.jackson.databind.deser.std.StdDeserializer
{
public static final java.lang.String OPERATOR_EXPRESSION;
public static final java.lang.String FIELD_NAME;
public static final java.lang.String EXPR;
private static final org.slf4j.Logger LOGGER;
static java.util.Set comparisonOperators;
static java.util.Set logicalOperators;
public void <init>()
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: void <init>(java.lang.Class)>(null);
return;
}
protected void <init>(java.lang.Class)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.Class v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.lang.Class;
specialinvoke v.<com.fasterxml.jackson.databind.deser.std.StdDeserializer: void <init>(java.lang.Class)>(v);
return;
}
private static org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromEntry(java.util.Map$Entry)
{
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v;
java.lang.Object v;
java.util.Map$Entry v;
v := @parameter: java.util.Map$Entry;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
}
private static org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)
{
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArrayTypeValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BoolTypeValue v;
java.math.BigDecimal v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DecimalTypeValue v;
com.fasterxml.jackson.databind.JsonNode v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectTypeValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v, v;
java.util.List v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NullTypeValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue v;
long v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LongTypeValue v;
int v;
java.lang.String v, v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.IntTypeValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue v;
java.lang.Object v;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isValueNode()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isTextual()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String textValue()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue: java.lang.String value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBoolean()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BoolTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BoolTypeValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean booleanValue()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BoolTypeValue: boolean value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isInt()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.IntTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.IntTypeValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int intValue()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.IntTypeValue: long value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isLong()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LongTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LongTypeValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: long longValue()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LongTypeValue: long value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isDouble()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isFloat()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isBigDecimal()>();
if v == 0 goto label;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DecimalTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DecimalTypeValue: void <init>()>();
v = new java.math.BigDecimal;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
specialinvoke v.<java.math.BigDecimal: void <init>(java.lang.String)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DecimalTypeValue: java.math.BigDecimal value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isNull()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NullTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NullTypeValue: void <init>()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectTypeValue: void <init>()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getKeyValuePairs(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectTypeValue: java.util.List keyValues> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArrayTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArrayTypeValue: void <init>()>();
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList of()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)>(v);
v = v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArrayTypeValue: java.util.List items> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
label:
return v;
}
private static java.util.List getKeyValuePairs(com.fasterxml.jackson.databind.JsonNode)
{
java.lang.IllegalStateException v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.KeyValuePair v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.Object v, v, v, v;
java.lang.String v;
boolean v, v;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.KeyValuePair;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.KeyValuePair: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: boolean isSupportedOperation(java.lang.String)>(v);
if v == 0 goto label;
v = new java.lang.IllegalStateException;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Literal Object value has key that is a operator key word \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.KeyValuePair: java.lang.String key> = v;
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromEntry(java.util.Map$Entry)>(v);
v = v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value>;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.KeyValuePair: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
private static boolean isSupportedOperation(java.lang.String)
{
java.util.Set v, v;
java.lang.String v;
boolean v, v, v;
v := @parameter: java.lang.String;
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.Set comparisonOperators>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.Set logicalOperators>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand deserialize(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext) throws java.io.IOException
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline v;
byte v;
int v;
com.fasterxml.jackson.core.JsonToken v, v, v, v;
java.lang.String v, v;
boolean v, v, v;
com.fasterxml.jackson.databind.DeserializationContext v;
org.slf4j.Logger v, v;
com.fasterxml.jackson.core.JsonParser v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.core.JsonParser;
v := @parameter: com.fasterxml.jackson.databind.DeserializationContext;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand: void <init>()>();
label:
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken currentToken()>();
v = <com.fasterxml.jackson.core.JsonToken: com.fasterxml.jackson.core.JsonToken END_OBJECT>;
if v == v goto label;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken currentToken()>();
v = <com.fasterxml.jackson.core.JsonToken: com.fasterxml.jackson.core.JsonToken FIELD_NAME>;
if v != v goto label;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: java.lang.String getCurrentName()>();
virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken nextToken()>();
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1349119146: goto label;
case -372069726: goto label;
case 175177151: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("aggregate");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("pipeline");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("cursor");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand: java.lang.String type> = "aggregate";
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: java.lang.String getText()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand: java.lang.String collectionName> = v;
goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline getAggPipeline(com.fasterxml.jackson.core.JsonParser)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.DatabaseCommand: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline aggregationPipeline> = v;
goto label;
label:
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Output = cursor, default format for output");
goto label;
label:
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Ignoring unknown property: {}", v);
label:
virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken nextToken()>();
goto label;
label:
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline getAggPipeline(com.fasterxml.jackson.core.JsonParser) throws java.io.IOException
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v;
com.fasterxml.jackson.core.JsonParser v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline v;
com.fasterxml.jackson.core.JsonToken v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.core.JsonParser;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken currentToken()>();
v = <com.fasterxml.jackson.core.JsonToken: com.fasterxml.jackson.core.JsonToken START_ARRAY>;
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Expected aggregationPipeline node to be an array");
throw v;
label:
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
label:
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonToken nextToken()>();
v = <com.fasterxml.jackson.core.JsonToken: com.fasterxml.jackson.core.JsonToken END_ARRAY>;
if v == v goto label;
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getStage(com.fasterxml.jackson.core.JsonParser)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AggregationPipeline: java.util.List stages> = v;
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getStage(com.fasterxml.jackson.core.JsonParser) throws java.io.IOException
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
com.fasterxml.jackson.core.JsonLocation v;
com.fasterxml.jackson.core.ObjectCodec v;
java.lang.Integer v;
int v, v;
com.fasterxml.jackson.databind.JsonNode v, v;
boolean v, v, v;
com.fasterxml.jackson.core.TreeNode v;
org.slf4j.Logger v;
com.fasterxml.jackson.core.JsonParser v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.core.JsonParser;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.ObjectCodec getCodec()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.ObjectCodec: com.fasterxml.jackson.core.TreeNode readTree(com.fasterxml.jackson.core.JsonParser)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v <= 1 goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Expected Stage command node to be an object, with just 1 key(stage)");
throw v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean has(java.lang.String)>("$match");
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(java.lang.String)>("$match");
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getMatchStage(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean has(java.lang.String)>("$project");
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(java.lang.String)>("$project");
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getProjectStage(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
label:
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.slf4j.Logger LOGGER>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonParser: com.fasterxml.jackson.core.JsonLocation getCurrentLocation()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonLocation: int getLineNr()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Ignoring stage - at {}", v);
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Unsupported stages provided in pipeline, refer above");
throw v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getMatchStage(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.MatchStage v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v, v;
com.fasterxml.jackson.databind.JsonNode v, v;
boolean v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.MatchStage;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.MatchStage: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Expected match node to be an object");
throw v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(java.lang.String)>("$expr");
if v == null goto label;
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getMatchExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.MatchStage: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression expression> = v;
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Match stage supports only  $expr style syntax");
throw v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression: void <init>()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.MatchStage: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression expression> = v;
label:
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getProjectExpression(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
byte v;
int v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.String v;
boolean v, v, v, v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectQueryExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectQueryExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectQueryExpression: void <init>()>();
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.lang.String getOperatorType(java.lang.String)>(v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 36374553: goto label;
case 1265009317: goto label;
case 1303107196: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("fieldName");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("OperatorExpression");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$expr");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue getFieldBasedProjectOperation(java.util.Map$Entry)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Project syntax does not support Operator Expression");
throw v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Project syntax does not support Expr Expression");
throw v;
label:
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ObjectQueryExpression: java.util.List keyValues> = v;
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getMatchExpression(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
byte v;
int v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v, v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.String v;
boolean v, v, v, v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ExprQueryExpression v;
java.lang.Object v, v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 1 goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Match Expression should contain a single $expr key : Object");
throw v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.lang.String getOperatorType(java.lang.String)>(v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 36374553: goto label;
case 1303107196: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$expr");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("OperatorExpression");
if v == 0 goto label;
v = 1;
label:
lookupswitch(v)
{
case 0: goto label;
case 1: goto label;
default: goto label;
};
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ExprQueryExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ExprQueryExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getOperationExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ExprQueryExpression: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression expression> = v;
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getOperationExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Match Expression cannot be empty");
throw v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getOperationExpression(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
byte v;
int v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.String v;
boolean v, v, v, v, v;
org.slf4j.Logger v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v;
java.util.Optional v;
java.lang.Object v, v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator fields()>();
v = 0;
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.lang.String getOperatorType(java.lang.String)>(v);
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 1265009317: goto label;
case 1303107196: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("OperatorExpression");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("fieldName");
if v == 0 goto label;
v = 1;
label:
lookupswitch(v)
{
case 0: goto label;
case 1: goto label;
default: goto label;
};
label:
v = 1;
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.Optional getOperatorExpression(java.util.Map$Entry)>(v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
return v;
label:
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("An object representing an expression must have exactly one field");
throw v;
label:
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
label:
v = <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Get Operation invoked with a non-operator expression");
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No operator found within $expr");
throw v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression getNotOperatorExpression(java.util.Map$Entry)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.util.Map$Entry v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
java.lang.Object v;
org.eclipse.collections.api.list.FixedSizeList v;
org.eclipse.collections.api.factory.list.FixedSizeListFactory v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression: void <init>()>();
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.FixedSizeListFactory fixedSize>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getObjectQueryExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.FixedSizeListFactory: org.eclipse.collections.api.list.FixedSizeList of(java.lang.Object)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression: java.util.List expressions> = v;
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression getOrOperatorExpression(java.util.Map$Entry)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.util.List v;
java.util.Map$Entry v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression v;
java.lang.Object v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getQueryExpressions(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression: java.util.List expressions> = v;
return v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression getAndOperatorExpression(java.util.Map$Entry)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.util.List v;
java.util.Map$Entry v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression v;
java.lang.Object v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getQueryExpressions(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression: java.util.List expressions> = v;
return v;
}
private java.util.List getQueryExpressions(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v;
java.util.Iterator v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
int v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
com.fasterxml.jackson.databind.JsonNode v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v <= 0 goto label;
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList of()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isValueNode()>();
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Logical Operators need object node or pattern as argument");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getMatchExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Logical Operators need non-zero array of Object Expressions ($and, $or, $nor)");
throw v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getObjectQueryExpression(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
com.fasterxml.jackson.databind.JsonNode v;
boolean v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v == 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getMatchExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Operator need object node (eg., $not)");
throw v;
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue getFieldBasedProjectOperation(java.util.Map$Entry)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v;
java.util.Map$Entry v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue v;
java.lang.Object v, v;
boolean v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue: void <init>()>();
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression: java.lang.String fieldPath> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression key> = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isValueNode()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromEntry(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.QueryExprKeyValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression value> = v;
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Project syntax supports only field: 1 / bool");
throw v;
label:
return v;
}
private java.util.Optional getOperatorExpression(java.util.Map$Entry)
{
byte v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.EqOperatorExpression v;
java.lang.String v;
java.util.Map$Entry v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NinOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTEOperatorExpression v;
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v, v, v, v, v, v, v, v;
org.eclipse.collections.api.list.FixedSizeList v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTOperatorExpression v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NEOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v;
java.util.List v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression v;
java.util.Optional v, v, v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTOperatorExpression v;
int v, v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTEOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.InOperatorExpression v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.eclipse.collections.api.factory.list.FixedSizeListFactory v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case 37840: goto label;
case 37905: goto label;
case 37961: goto label;
case 38060: goto label;
case 38107: goto label;
case 38151: goto label;
case 1169203: goto label;
case 1175156: goto label;
case 1179961: goto label;
case 1181551: goto label;
case 1181743: goto label;
case 36374553: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$expr");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$eq");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$ne");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$gt");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$gte");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$lt");
if v == 0 goto label;
v = 5;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$lte");
if v == 0 goto label;
v = 6;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$in");
if v == 0 goto label;
v = 7;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$nin");
if v == 0 goto label;
v = 8;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$and");
if v == 0 goto label;
v = 9;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$or");
if v == 0 goto label;
v = 10;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$not");
if v == 0 goto label;
v = 11;
label:
tableswitch(v)
{
case 0: goto label;
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;
case 10: goto label;
case 11: goto label;
default: goto label;
};
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getMatchExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.EqOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.EqOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$eq operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.EqOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NEOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NEOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NEOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTEOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTEOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.GTEOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTEOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTEOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LTEOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.InOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.InOperatorExpression: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("$ne operator accepts only array of 2 expressions");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.List getExpressionParams(java.util.Map$Entry)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.InOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NinOperatorExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NinOperatorExpression: void <init>()>();
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromEntry(java.util.Map$Entry)>(v);
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.FixedSizeListFactory fixedSize>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.FixedSizeListFactory: org.eclipse.collections.api.list.FixedSizeList of(java.lang.Object)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NinOperatorExpression: java.util.List expressions> = v;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.AndOperatorExpression getAndOperatorExpression(java.util.Map$Entry)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.OrOperatorExpression getOrOperatorExpression(java.util.Map$Entry)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.NotOperatorExpression getNotOperatorExpression(java.util.Map$Entry)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = new java.lang.IllegalStateException;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Operator not supported yet: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
}
private java.util.List getExpressionParams(java.util.Map$Entry)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
java.util.Map$Entry v;
java.util.Iterator v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue v, v, v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.util.Map$Entry;
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList of()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isValueNode()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isTextual()>();
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("$");
if v == 0 goto label;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.FieldPathExpression: java.lang.String fieldPath> = v;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: void <init>()>();
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.StringTypeValue: java.lang.String value> = v;
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.BaseTypeValue value> = v;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v == 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getOperationExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isArray()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.LiteralValue getLiteralValueFromNode(com.fasterxml.jackson.databind.JsonNode)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
private java.lang.String getOperatorType(java.lang.String)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.String v, v;
boolean v, v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: java.lang.String;
v = "$expr";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "$expr";
label:
v = staticinvoke <org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: boolean isSupportedOperation(java.lang.String)>(v);
if v == 0 goto label;
return "OperatorExpression";
label:
return "fieldName";
}
private org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.Stage getProjectStage(com.fasterxml.jackson.databind.JsonNode)
{
org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer v;
java.lang.IllegalStateException v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression v;
com.fasterxml.jackson.databind.JsonNode v;
org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ProjectStage v;
boolean v;
v := @this: org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer;
v := @parameter: com.fasterxml.jackson.databind.JsonNode;
v = new org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ProjectStage;
specialinvoke v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ProjectStage: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean isObject()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Expected Project node to be an object");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression getProjectExpression(com.fasterxml.jackson.databind.JsonNode)>(v);
v.<org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ProjectStage: org.finos.legend.engine.protocol.mongodb.schema.metamodel.aggregation.ArgumentExpression projections> = v;
return v;
}
static void <clinit>()
{
org.eclipse.collections.api.factory.set.MutableSetFactory v, v;
org.eclipse.collections.api.set.MutableSet v, v;
org.slf4j.Logger v;
java.lang.String[] v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/language/pure/grammar/from/deserializer/MongoDBQueryDeserializer;");
<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: org.slf4j.Logger LOGGER> = v;
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = newarray (java.lang.String)[8];
v[0] = "$eq";
v[1] = "$gt";
v[2] = "$gte";
v[3] = "$lt";
v[4] = "$lte";
v[5] = "$ne";
v[6] = "$in";
v[7] = "$nin";
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet of(java.lang.Object[])>(v);
<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.Set comparisonOperators> = v;
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = newarray (java.lang.String)[4];
v[0] = "$and";
v[1] = "$or";
v[2] = "$nor";
v[3] = "$not";
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet of(java.lang.Object[])>(v);
<org.finos.legend.engine.language.pure.grammar.'from'.deserializer.MongoDBQueryDeserializer: java.util.Set logicalOperators> = v;
return;
}
}