public abstract class org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache extends java.lang.Object
{
protected final java.util.Map cache;
private final java.util.Map primitiveConversionMap;
public void <init>()
{
java.util.HashMap v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache v;
java.util.Map v;
v := @this: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache> = v;
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map constructPrimitiveConversions()>();
v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map primitiveConversionMap> = v;
return;
}
public org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion getConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)
{
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion v;
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type v;
java.util.Map v, v;
java.lang.Object v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext v;
boolean v;
v := @this: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache;
v := @parameter: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type;
v := @parameter: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext;
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v, v);
return v;
}
private org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)
{
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion v, v, v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.UnitConversion v;
java.util.Map v, v, v, v, v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.EnumerationConversion v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.MapConversion v;
java.lang.IllegalArgumentException v;
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ClassConversion v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext v;
v := @this: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache;
v := @parameter: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type;
v := @parameter: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext;
v = v instanceof org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Class;
if v == 0 goto label;
v = interfaceinvoke v.<org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Map");
if v == 0 goto label;
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.MapConversion newMapConversion(org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v);
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = interfaceinvoke v.<org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Type: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Any");
if v == 0 goto label;
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newGenericAndAnyTypeConversion(boolean,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(1, v);
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ClassConversion newClassConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Class,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v, v);
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ClassConversion: void completeInitialisation(org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v);
return v;
label:
v = v instanceof org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Enumeration;
if v == 0 goto label;
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.EnumerationConversion newEnumerationConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Enumeration,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v, v);
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = v instanceof org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Unit;
if v != 0 goto label;
v = v instanceof org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Measure;
if v == 0 goto label;
label:
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.UnitConversion newUnitConversion(org.finos.legend.pure.m.coreinstance.CoreInstance,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v, v);
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map cache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = v instanceof org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType;
if v == 0 goto label;
v = specialinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newPrimitiveConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(v, v);
return v;
label:
if v != null goto label;
v = virtualinvoke v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newGenericAndAnyTypeConversion(boolean,org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)>(0, v);
return v;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Unknown type.");
throw v;
}
private org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newPrimitiveConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext)
{
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.PrimitiveConversion$PurePrimitive v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache v;
java.util.Map v;
org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType v;
java.lang.Object v;
java.lang.String v;
org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext v;
v := @this: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache;
v := @parameter: org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType;
v := @parameter: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext;
v = v.<org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionCache: java.util.Map primitiveConversionMap>;
v = interfaceinvoke v.<org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.PrimitiveType: java.lang.String getName()>();
v = staticinvoke <org.finos.legend.pure.runtime.java.extension.external.shared.conversion.PrimitiveConversion$PurePrimitive: org.finos.legend.pure.runtime.java.extension.external.shared.conversion.PrimitiveConversion$PurePrimitive valueOf(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
protected abstract java.util.Map constructPrimitiveConversions();
protected abstract org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ClassConversion newClassConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Class, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext);
protected abstract org.finos.legend.pure.runtime.java.extension.external.shared.conversion.MapConversion newMapConversion(org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext);
protected abstract org.finos.legend.pure.runtime.java.extension.external.shared.conversion.EnumerationConversion newEnumerationConversion(org.finos.legend.pure.m.coreinstance.meta.pure.metamodel.type.Enumeration, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext);
protected abstract org.finos.legend.pure.runtime.java.extension.external.shared.conversion.UnitConversion newUnitConversion(org.finos.legend.pure.m.coreinstance.CoreInstance, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext);
protected abstract org.finos.legend.pure.runtime.java.extension.external.shared.conversion.Conversion newGenericAndAnyTypeConversion(boolean, org.finos.legend.pure.runtime.java.extension.external.shared.conversion.ConversionContext);
}