public class org.finos.legend.engine.query.sql.api.TableSourceExtractor extends org.finos.legend.engine.query.sql.api.BaseNodeCollectorVisitor
{
public void <init>()
{
org.eclipse.collections.api.factory.set.MutableSetFactory v;
org.eclipse.collections.api.set.MutableSet v;
java.util.function.Function v;
org.finos.legend.engine.query.sql.api.TableSourceExtractor v;
v := @this: org.finos.legend.engine.query.sql.api.TableSourceExtractor;
v = staticinvoke <org.finos.legend.engine.query.sql.api.TableSourceExtractor$lambda_new_0__9: java.util.function.Function bootstrap$()>();
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet empty()>();
specialinvoke v.<org.finos.legend.engine.query.sql.api.BaseNodeCollectorVisitor: void <init>(java.util.function.Function,java.lang.Object)>(v, v);
return;
}
public java.util.Set visit(org.finos.legend.engine.protocol.sql.metamodel.Table)
{
org.finos.legend.engine.query.sql.providers.core.TableSource v;
org.finos.legend.engine.protocol.sql.metamodel.QualifiedName v, v, v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
java.lang.Integer v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.query.sql.providers.core.TableSourceArgument[] v;
org.eclipse.collections.api.set.MutableSet v;
int v;
org.eclipse.collections.api.factory.set.MutableSetFactory v;
java.lang.IllegalArgumentException v;
org.finos.legend.engine.query.sql.providers.core.TableSource[] v;
org.finos.legend.engine.protocol.sql.metamodel.Table v;
java.util.List v, v, v;
java.lang.Object v, v;
org.finos.legend.engine.query.sql.providers.core.TableSourceArgument v;
org.finos.legend.engine.query.sql.api.TableSourceExtractor v;
v := @this: org.finos.legend.engine.query.sql.api.TableSourceExtractor;
v := @parameter: org.finos.legend.engine.protocol.sql.metamodel.Table;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.Table: org.finos.legend.engine.protocol.sql.metamodel.QualifiedName name>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.QualifiedName: java.util.List parts>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v == 2 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("All table names are expected to have 2 parts, <schema>.<name>");
throw v;
label:
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = newarray (org.finos.legend.engine.query.sql.providers.core.TableSource)[1];
v = new org.finos.legend.engine.query.sql.providers.core.TableSource;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.Table: org.finos.legend.engine.protocol.sql.metamodel.QualifiedName name>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.QualifiedName: java.util.List parts>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = newarray (org.finos.legend.engine.query.sql.providers.core.TableSourceArgument)[1];
v = new org.finos.legend.engine.query.sql.providers.core.TableSourceArgument;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v = v.<org.finos.legend.engine.protocol.sql.metamodel.Table: org.finos.legend.engine.protocol.sql.metamodel.QualifiedName name>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.QualifiedName: java.util.List parts>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
specialinvoke v.<org.finos.legend.engine.query.sql.providers.core.TableSourceArgument: void <init>(java.lang.String,java.lang.Integer,java.lang.Object)>(null, v, v);
v[0] = v;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList of(java.lang.Object[])>(v);
specialinvoke v.<org.finos.legend.engine.query.sql.providers.core.TableSource: void <init>(java.lang.String,java.util.List)>(v, v);
v[0] = v;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet of(java.lang.Object[])>(v);
return v;
}
public java.util.Set visit(org.finos.legend.engine.protocol.sql.metamodel.TableFunction)
{
org.finos.legend.engine.query.sql.providers.core.TableSource v;
org.finos.legend.engine.protocol.sql.metamodel.QualifiedName v, v;
org.finos.legend.engine.protocol.sql.metamodel.TableFunction v;
org.eclipse.collections.api.list.MutableList v;
org.eclipse.collections.api.set.MutableSet v;
int v;
org.finos.legend.engine.protocol.sql.metamodel.FunctionCall v, v, v;
org.eclipse.collections.api.factory.set.MutableSetFactory v;
java.lang.IllegalArgumentException v;
org.finos.legend.engine.query.sql.providers.core.TableSource[] v;
java.util.List v, v, v;
java.lang.Object v;
org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction v;
org.finos.legend.engine.query.sql.api.TableSourceExtractor v;
v := @this: org.finos.legend.engine.query.sql.api.TableSourceExtractor;
v := @parameter: org.finos.legend.engine.protocol.sql.metamodel.TableFunction;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.TableFunction: org.finos.legend.engine.protocol.sql.metamodel.FunctionCall functionCall>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.FunctionCall: org.finos.legend.engine.protocol.sql.metamodel.QualifiedName name>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.QualifiedName: java.util.List parts>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v == 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("All table functions must have 1 part");
throw v;
label:
v = v.<org.finos.legend.engine.protocol.sql.metamodel.TableFunction: org.finos.legend.engine.protocol.sql.metamodel.FunctionCall functionCall>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.FunctionCall: java.util.List arguments>;
v = staticinvoke <org.finos.legend.engine.query.sql.api.TableSourceExtractor$extractArgument__10: org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction bootstrap$(org.finos.legend.engine.query.sql.api.TableSourceExtractor)>(v);
v = staticinvoke <org.eclipse.collections.impl.utility.ListIterate: org.eclipse.collections.api.list.MutableList collectWithIndex(java.util.List,org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction)>(v, v);
v = <org.eclipse.collections.api.factory.Sets: org.eclipse.collections.api.factory.set.MutableSetFactory mutable>;
v = newarray (org.finos.legend.engine.query.sql.providers.core.TableSource)[1];
v = new org.finos.legend.engine.query.sql.providers.core.TableSource;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.TableFunction: org.finos.legend.engine.protocol.sql.metamodel.FunctionCall functionCall>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.FunctionCall: org.finos.legend.engine.protocol.sql.metamodel.QualifiedName name>;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.QualifiedName: java.util.List parts>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
specialinvoke v.<org.finos.legend.engine.query.sql.providers.core.TableSource: void <init>(java.lang.String,java.util.List)>(v, v);
v[0] = v;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.set.MutableSetFactory: org.eclipse.collections.api.set.MutableSet of(java.lang.Object[])>(v);
return v;
}
public org.finos.legend.engine.query.sql.providers.core.TableSourceArgument extractArgument(org.finos.legend.engine.protocol.sql.metamodel.Expression, java.lang.Integer)
{
java.lang.Integer v, v;
org.finos.legend.engine.protocol.sql.metamodel.Expression v;
java.lang.Object v;
java.lang.String v, v;
org.finos.legend.engine.query.sql.providers.core.TableSourceArgument v;
boolean v, v;
org.finos.legend.engine.query.sql.api.TableSourceExtractor v;
v := @this: org.finos.legend.engine.query.sql.api.TableSourceExtractor;
v := @parameter: org.finos.legend.engine.protocol.sql.metamodel.Expression;
v := @parameter: java.lang.Integer;
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression: java.lang.String name>;
goto label;
label:
v = null;
label:
v = v;
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression;
if v == 0 goto label;
v = null;
goto label;
label:
v = v;
label:
v = specialinvoke v.<org.finos.legend.engine.query.sql.api.TableSourceExtractor: java.lang.Object extractArgumentValue(org.finos.legend.engine.protocol.sql.metamodel.Expression)>(v);
v = new org.finos.legend.engine.query.sql.providers.core.TableSourceArgument;
specialinvoke v.<org.finos.legend.engine.query.sql.providers.core.TableSourceArgument: void <init>(java.lang.String,java.lang.Integer,java.lang.Object)>(v, v, v);
return v;
}
public java.lang.Object extractArgumentValue(org.finos.legend.engine.protocol.sql.metamodel.Expression)
{
java.lang.Double v;
org.eclipse.collections.api.block.function.Function v;
long v, v;
org.eclipse.collections.api.list.MutableList v;
java.lang.Long v, v;
java.lang.Boolean v;
java.lang.String v;
boolean v, v, v, v, v, v, v, v, v;
double v;
java.util.List v;
org.finos.legend.engine.protocol.sql.metamodel.Expression v, v;
java.lang.Object v;
org.finos.legend.engine.query.sql.api.TableSourceExtractor v;
v := @this: org.finos.legend.engine.query.sql.api.TableSourceExtractor;
v := @parameter: org.finos.legend.engine.protocol.sql.metamodel.Expression;
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.NamedArgumentExpression: org.finos.legend.engine.protocol.sql.metamodel.Expression expression>;
v = specialinvoke v.<org.finos.legend.engine.query.sql.api.TableSourceExtractor: java.lang.Object extractArgumentValue(org.finos.legend.engine.protocol.sql.metamodel.Expression)>(v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.IntegerLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.IntegerLiteral: long value>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.StringLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.StringLiteral: java.lang.String value>;
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.BooleanLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.BooleanLiteral: boolean value>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.DoubleLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.DoubleLiteral: double value>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.LongLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.LongLiteral: long value>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.ArrayLiteral;
if v == 0 goto label;
v = v.<org.finos.legend.engine.protocol.sql.metamodel.ArrayLiteral: java.util.List values>;
v = staticinvoke <org.finos.legend.engine.query.sql.api.TableSourceExtractor$extractArgumentValue__11: org.eclipse.collections.api.block.function.Function bootstrap$(org.finos.legend.engine.query.sql.api.TableSourceExtractor)>(v);
v = staticinvoke <org.eclipse.collections.impl.utility.ListIterate: org.eclipse.collections.api.list.MutableList collect(java.util.List,org.eclipse.collections.api.block.function.Function)>(v, v);
return v;
label:
v = v instanceof org.finos.legend.engine.protocol.sql.metamodel.NullLiteral;
if v == 0 goto label;
return null;
label:
return v;
}
}