Search in sources :

Example 1 with ProcessorContext

use of org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext in project legend-pure by finos.

the class CompiledSupport method dynamicallyEvaluateValueSpecification.

public static Object dynamicallyEvaluateValueSpecification(final CoreInstance valueSpecification, PureMap lambdaOpenVariablesMap, ExecutionSupport es) {
    MemoryFileManager fileManager = ((CompiledExecutionSupport) es).getMemoryFileManager();
    ClassLoader globalClassLoader = ((CompiledExecutionSupport) es).getClassLoader();
    final CompiledProcessorSupport compiledSupport = new CompiledProcessorSupport(globalClassLoader, ((CompiledExecutionSupport) es).getMetadata(), ((CompiledExecutionSupport) es).getExtraSupportedTypes());
    final ProcessorContext processorContext = new ProcessorContext(compiledSupport);
    // Don't do anything if the ValueSpecification is already resolved ----------------
    if (Instance.instanceOf(valueSpecification, M3Paths.InstanceValue, processorContext.getSupport())) {
        ListIterable<? extends CoreInstance> l = valueSpecification.getValueForMetaPropertyToMany(M3Properties.values);
        if (l.noneSatisfy(instance -> Instance.instanceOf(instance, M3Paths.ValueSpecification, processorContext.getSupport()) || Instance.instanceOf(instance, M3Paths.LambdaFunction, processorContext.getSupport()))) {
            ListIterable<Object> result = l.collect(instance -> instance instanceof ValCoreInstance ? ((ValCoreInstance) instance).getValue() : instance);
            return result.size() == 1 ? result.get(0) : result;
        }
    }
    // ---------------------------------------------------------------------------------
    processorContext.setInLineAllLambda(true);
    String processed = ValueSpecificationProcessor.processValueSpecification(valueSpecification, true, processorContext);
    String returnType = TypeProcessor.typeToJavaObjectWithMul(valueSpecification.getValueForMetaPropertyToOne(M3Properties.genericType), valueSpecification.getValueForMetaPropertyToOne(M3Properties.multiplicity), false, compiledSupport);
    String name = "DynaClass";
    RichIterable<Pair<String, CoreInstance>> values = lambdaOpenVariablesMap.getMap().keyValuesView();
    final MutableMap<String, Object> openVars = Maps.mutable.of();
    String _class = JavaSourceCodeGenerator.imports + "\npublic class " + name + "{\n" + "   public static " + returnType + " doProcess(final MapIterable<String, Object> vars, final MutableMap<String, Object> valMap, final IntObjectMap<CoreInstance> localLambdas, final ExecutionSupport es){\n" + values.collect(new Function<Pair<String, CoreInstance>, String>() {

        @Override
        public String valueOf(Pair<String, CoreInstance> pair) {
            final String name = pair.getOne();
            CoreInstance valuesCoreInstance = pair.getTwo();
            ListIterable<? extends CoreInstance> values = valuesCoreInstance.getValueForMetaPropertyToMany(M3Properties.values).select(coreInstance -> !Instance.instanceOf(coreInstance, "meta::pure::executionPlan::PlanVarPlaceHolder", compiledSupport) && !Instance.instanceOf(coreInstance, "meta::pure::executionPlan::PlanVariablePlaceHolder", compiledSupport));
            String type = null;
            openVars.put(name, valuesCoreInstance);
            if (values.isEmpty()) {
                MutableList<CoreInstance> vars = FastList.newList();
                collectVars(valueSpecification, vars, compiledSupport);
                CoreInstance found = vars.detect(coreInstance -> coreInstance.getValueForMetaPropertyToOne("name").getName().equals(name));
                if (found != null) {
                    type = TypeProcessor.typeToJavaObjectSingle(found.getValueForMetaPropertyToOne(M3Properties.genericType), false, compiledSupport);
                    return "      final  " + type + "  _" + name + " = null;";
                }
                return "";
            } else {
                type = TypeProcessor.pureRawTypeToJava(compiledSupport.getClassifier(values.getFirst()), false, compiledSupport);
                final String listImpl = JavaPackageAndImportBuilder.buildImplClassReferenceFromUserPath(M3Paths.List);
                return (values.size() == 1) ? ("      final " + type + " _" + name + " = (" + type + ")((" + listImpl + ")vars.get(\"" + name + "\"))._values.getFirst();") : ("      final RichIterable<" + type + "> _" + name + " = ((" + listImpl + ")vars.get(\"" + name + "\"))._values;");
            }
        }
    }).makeString("\n") + "       return " + processed + ";\n" + "   }\n" + "}\n";
    String javaPackage = JavaPackageAndImportBuilder.buildPackageForPackageableElement(valueSpecification);
    ListIterable<StringJavaSource> javaClasses = Lists.immutable.with(StringJavaSource.newStringJavaSource(javaPackage, name, _class));
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    MemoryFileManager manager = new MemoryFileManager(compiler, fileManager, null);
    try {
        PureJavaCompiler.compile(compiler, javaClasses, manager);
    } catch (Exception e) {
        StringBuilder message = new StringBuilder("Error dynamically evaluating value specification");
        SourceInformation valueSpecSourceInfo = valueSpecification.getSourceInformation();
        if (valueSpecSourceInfo != null) {
            valueSpecSourceInfo.appendMessage(message.append(" (from ")).append(')');
        }
        message.append("; error compiling generated Java code:\n").append(_class);
        throw new RuntimeException(message.toString(), e);
    }
    ClassLoader cl = new MemoryClassLoader(manager, globalClassLoader);
    try {
        Class<?> realClass = cl.loadClass(javaPackage + "." + name);
        return realClass.getMethod("doProcess", MapIterable.class, MutableMap.class, IntObjectMap.class, ExecutionSupport.class).invoke(null, openVars, processorContext.getObjectToPassToDynamicallyGeneratedCode(), processorContext.getLocalLambdas(), es);
    } catch (Exception e) {
        StringBuilder message = new StringBuilder("Error dynamically evaluating value specification");
        SourceInformation valueSpecSourceInfo = valueSpecification.getSourceInformation();
        if (valueSpecSourceInfo != null) {
            valueSpecSourceInfo.appendMessage(message.append(" (from ")).append(')');
        }
        String errorMessage = e.getMessage();
        if (errorMessage != null) {
            message.append(": ").append(errorMessage);
        }
        throw new RuntimeException(message.toString(), e);
    }
}
Also used : MutableMap(org.eclipse.collections.api.map.MutableMap) ProcessorContext(org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext) CompiledProcessorSupport(org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport) SharedPureFunction(org.finos.legend.pure.runtime.java.compiled.generation.processors.support.function.SharedPureFunction) Function(org.eclipse.collections.api.block.function.Function) JavaMethodWithParamsSharedPureFunction(org.finos.legend.pure.runtime.java.compiled.metadata.JavaMethodWithParamsSharedPureFunction) IntObjectMap(org.eclipse.collections.api.map.primitive.IntObjectMap) MemoryClassLoader(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryClassLoader) CompiledExecutionSupport(org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport) ExecutionSupport(org.finos.legend.pure.m3.execution.ExecutionSupport) StringJavaSource(org.finos.legend.pure.runtime.java.compiled.compiler.StringJavaSource) MemoryClassLoader(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryClassLoader) MemoryFileManager(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryFileManager) Pair(org.eclipse.collections.api.tuple.Pair) ValCoreInstance(org.finos.legend.pure.runtime.java.compiled.generation.processors.support.coreinstance.ValCoreInstance) JavaCompiler(javax.tools.JavaCompiler) PureJavaCompiler(org.finos.legend.pure.runtime.java.compiled.compiler.PureJavaCompiler) MapIterable(org.eclipse.collections.api.map.MapIterable) PureAssertFailException(org.finos.legend.pure.m3.exception.PureAssertFailException) InvalidFunctionDescriptorException(org.finos.legend.pure.m3.navigation.function.InvalidFunctionDescriptorException) InvocationTargetException(java.lang.reflect.InvocationTargetException) PureJavaCompileException(org.finos.legend.pure.runtime.java.compiled.compiler.PureJavaCompileException) PureException(org.finos.legend.pure.m4.exception.PureException) PureExecutionException(org.finos.legend.pure.m3.exception.PureExecutionException) ParseException(org.json.simple.parser.ParseException) NoSuchElementException(java.util.NoSuchElementException) SourceInformation(org.finos.legend.pure.m4.coreinstance.SourceInformation) CompiledExecutionSupport(org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport) CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) ValCoreInstance(org.finos.legend.pure.runtime.java.compiled.generation.processors.support.coreinstance.ValCoreInstance) BaseCoreInstance(org.finos.legend.pure.m3.coreinstance.BaseCoreInstance) ReflectiveCoreInstance(org.finos.legend.pure.runtime.java.compiled.generation.processors.support.coreinstance.ReflectiveCoreInstance) AbstractCoreInstance(org.finos.legend.pure.m4.coreinstance.AbstractCoreInstance) JavaCompiledCoreInstance(org.finos.legend.pure.runtime.java.compiled.generation.processors.support.coreinstance.JavaCompiledCoreInstance)

Example 2 with ProcessorContext

use of org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext in project legend-pure by finos.

the class CompiledSupport method dynamicallyBuildLambdaFunction.

public static Object dynamicallyBuildLambdaFunction(CoreInstance lambdaFunction, ExecutionSupport es) {
    ClassLoader globalClassLoader = ((CompiledExecutionSupport) es).getClassLoader();
    CompiledProcessorSupport compiledSupport = new CompiledProcessorSupport(globalClassLoader, ((CompiledExecutionSupport) es).getMetadata(), ((CompiledExecutionSupport) es).getExtraSupportedTypes());
    ProcessorContext processorContext = new ProcessorContext(compiledSupport);
    processorContext.setInLineAllLambda(true);
    String name = "DynamicLambdaGeneration";
    String _class = JavaSourceCodeGenerator.imports + "\nimport " + JavaPackageAndImportBuilder.rootPackage() + ".*;\npublic class " + name + "{" + "   public static PureCompiledLambda build(final MutableMap<String, Object> valMap, final IntObjectMap<CoreInstance> localLambdas){\n" + "return " + ValueSpecificationProcessor.processLambda(null, lambdaFunction, compiledSupport, processorContext) + ";" + "}" + "}";
    MemoryFileManager fileManager = ((CompiledExecutionSupport) es).getMemoryFileManager();
    MutableList<StringJavaSource> javaClasses = FastList.newList();
    javaClasses.add(StringJavaSource.newStringJavaSource("temp", name, _class));
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    MemoryFileManager manager = new MemoryFileManager(compiler, fileManager, null);
    try {
        PureJavaCompiler.compile(compiler, javaClasses, manager);
    } catch (PureJavaCompileException e) {
        throw new RuntimeException(e);
    }
    ClassLoader cl = new MemoryClassLoader(manager, globalClassLoader);
    try {
        Class<?> realClass = cl.loadClass("temp" + "." + name);
        return realClass.getMethod("build", MutableMap.class, IntObjectMap.class).invoke(null, processorContext.getObjectToPassToDynamicallyGeneratedCode(), processorContext.getLocalLambdas());
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
Also used : MutableMap(org.eclipse.collections.api.map.MutableMap) JavaCompiler(javax.tools.JavaCompiler) PureJavaCompiler(org.finos.legend.pure.runtime.java.compiled.compiler.PureJavaCompiler) PureAssertFailException(org.finos.legend.pure.m3.exception.PureAssertFailException) InvalidFunctionDescriptorException(org.finos.legend.pure.m3.navigation.function.InvalidFunctionDescriptorException) InvocationTargetException(java.lang.reflect.InvocationTargetException) PureJavaCompileException(org.finos.legend.pure.runtime.java.compiled.compiler.PureJavaCompileException) PureException(org.finos.legend.pure.m4.exception.PureException) PureExecutionException(org.finos.legend.pure.m3.exception.PureExecutionException) ParseException(org.json.simple.parser.ParseException) NoSuchElementException(java.util.NoSuchElementException) ProcessorContext(org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext) CompiledProcessorSupport(org.finos.legend.pure.runtime.java.compiled.execution.CompiledProcessorSupport) IntObjectMap(org.eclipse.collections.api.map.primitive.IntObjectMap) PureJavaCompileException(org.finos.legend.pure.runtime.java.compiled.compiler.PureJavaCompileException) MemoryClassLoader(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryClassLoader) CompiledExecutionSupport(org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport) StringJavaSource(org.finos.legend.pure.runtime.java.compiled.compiler.StringJavaSource) MemoryClassLoader(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryClassLoader) MemoryFileManager(org.finos.legend.pure.runtime.java.compiled.compiler.MemoryFileManager)

Example 3 with ProcessorContext

use of org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext in project legend-pure by finos.

the class ClassLazyImplProcessor method buildImplementation.

static StringJavaSource buildImplementation(String _package, String imports, CoreInstance classGenericType, ProcessorContext processorContext, ProcessorSupport processorSupport) {
    CoreInstance _class = Instance.getValueForMetaPropertyToOneResolved(classGenericType, M3Properties.rawType, processorSupport);
    String className = JavaPackageAndImportBuilder.buildImplClassNameFromType(_class, CLASS_LAZYIMPL_SUFFIX);
    String classInterfaceName = TypeProcessor.javaInterfaceForType(_class);
    String typeParams = ClassProcessor.typeParameters(_class);
    String typeParamsString = typeParams.isEmpty() ? "" : "<" + typeParams + ">";
    String classNamePlusTypeParams = className + typeParamsString;
    String interfaceNamePlusTypeParams = classInterfaceName + typeParamsString;
    boolean hasQualifiers = !_Class.getQualifiedProperties(_class, processorContext.getSupport()).isEmpty();
    boolean instanceOfGetterOverride = processorSupport.instance_instanceOf(_class, M3Paths.GetterOverride);
    processorContext.setClassImplSuffix(CLASS_LAZYIMPL_SUFFIX);
    return StringJavaSource.newStringJavaSource(_package, className, IMPORTS + (hasQualifiers ? QUALIFIER_IMPORTS : "") + imports + "public class " + classNamePlusTypeParams + " extends AbstractLazyReflectiveCoreInstance implements " + interfaceNamePlusTypeParams + "\n" + "{\n" + ClassImplProcessor.buildMetaInfo(classGenericType, processorSupport, true) + "\n" + buildLazyConstructor(className) + (ClassProcessor.isPlatformClass(_class) ? buildFactory(className) : "") + ClassImplProcessor.buildGetKeys(_class, processorSupport) + (instanceOfGetterOverride ? lazyGetterOverride(interfaceNamePlusTypeParams) : "") + ClassImplProcessor.buildGetValueForMetaPropertyToOne(classGenericType, processorSupport) + ClassImplProcessor.buildGetValueForMetaPropertyToMany(classGenericType, processorSupport) + ClassImplProcessor.buildSimpleProperties(classGenericType, new ClassImplProcessor.FullPropertyImplementation() {

        @Override
        public String build(CoreInstance property, String name, CoreInstance unresolvedReturnType, CoreInstance returnType, CoreInstance returnMultiplicity, String returnTypeJava, String classOwnerFullId, String ownerClassName, String ownerTypeParams, ProcessorContext processorContext) {
            return "    public final AtomicBoolean _" + name + LAZY_INITIALIZED_SUFFIX + " = new AtomicBoolean(false);\n" + (Multiplicity.isToOne(returnMultiplicity, false) ? "    public " + returnTypeJava + " _" + name + ";\n" : "    public RichIterable _" + name + " = Lists.mutable.with();\n") + buildLazyProperty(property, ownerClassName + (ownerTypeParams.isEmpty() ? "" : "<" + ownerTypeParams + ">"), "this", classOwnerFullId, name, returnType, unresolvedReturnType, returnMultiplicity, processorContext.getSupport(), processorContext);
        }
    }, processorContext, processorSupport) + ClassImplProcessor.buildQualifiedProperties(classGenericType, processorContext, processorSupport) + buildLazyCopy(classGenericType, classInterfaceName, className, false, processorSupport) + ClassImplProcessor.buildEquality(classGenericType, CLASS_LAZYIMPL_SUFFIX, true, false, true, processorContext, processorSupport) + ClassImplProcessor.buildGetFullSystemPath() + // Not supported on platform classes yet
    (ClassProcessor.isPlatformClass(_class) ? "" : ClassImplProcessor.validate(_class, className, classGenericType, processorContext, processorSupport.class_getSimpleProperties(_class))) + "}");
}
Also used : CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) ProcessorContext(org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext)

Example 4 with ProcessorContext

use of org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext in project legend-pure by finos.

the class ClassImplProcessor method buildImplementation.

public static StringJavaSource buildImplementation(String _package, String imports, CoreInstance classGenericType, ProcessorContext processorContext, final ProcessorSupport processorSupport, final boolean useJavaInheritance, boolean addJavaSerializationSupport, String pureExternalPackage) {
    processorContext.setClassImplSuffix(CLASS_IMPL_SUFFIX);
    final CoreInstance _class = Instance.getValueForMetaPropertyToOneResolved(classGenericType, M3Properties.rawType, processorSupport);
    String className = JavaPackageAndImportBuilder.buildImplClassNameFromType(_class);
    String typeParams = ClassProcessor.typeParameters(_class);
    String typeParamsString = typeParams.isEmpty() ? "" : "<" + typeParams + ">";
    String classNamePlusTypeParams = className + typeParamsString;
    String interfaceNamePlusTypeParams = TypeProcessor.javaInterfaceForType(_class) + typeParamsString;
    boolean isGetterOverride = M3Paths.GetterOverride.equals(PackageableElement.getUserPathForPackageableElement(_class)) || M3Paths.ConstraintsGetterOverride.equals(PackageableElement.getUserPathForPackageableElement(_class));
    ListIterable<String> allGeneralizations = ClassInterfaceProcessor.getAllGeneralizations(processorContext, processorSupport, _class, CLASS_IMPL_SUFFIX);
    String _extends = useJavaInheritance ? allGeneralizations.getFirst() : "ReflectiveCoreInstance";
    final CoreInstance associationClass = processorSupport.package_getByUserPath(M3Paths.Association);
    boolean hasFunctions = !_Class.getQualifiedProperties(_class, processorContext.getSupport()).isEmpty() || !_Class.computeConstraintsInHierarchy(_class, processorContext.getSupport()).isEmpty();
    return StringJavaSource.newStringJavaSource(_package, className, IMPORTS + (hasFunctions ? FUNCTION_IMPORTS : "") + (addJavaSerializationSupport ? SERIALIZABLE_IMPORTS : "") + imports + "public class " + classNamePlusTypeParams + " extends " + _extends + " implements " + interfaceNamePlusTypeParams + (isGetterOverride ? ", GetterOverrideExecutor" : "") + (addJavaSerializationSupport ? ", Externalizable" : "") + "\n" + "{\n" + (addJavaSerializationSupport ? "    static final long serialVersionUID = -1L;\n" : "") + buildMetaInfo(classGenericType, processorSupport, false) + (addJavaSerializationSupport ? buildDefaultConstructor(className) : "") + buildSimpleConstructor(_class, className, processorSupport, useJavaInheritance) + (addJavaSerializationSupport ? buildSerializationMethods(_class, processorSupport, classGenericType, useJavaInheritance, associationClass, pureExternalPackage) : "") + buildGetClassifier() + buildGetKeys(_class, processorSupport) + (ClassProcessor.isPlatformClass(_class) ? buildFactory(className) : "") + (isGetterOverride ? getterOverrides(interfaceNamePlusTypeParams) : "") + buildGetValueForMetaPropertyToOne(classGenericType, processorSupport) + buildGetValueForMetaPropertyToMany(classGenericType, processorSupport) + buildSimpleProperties(classGenericType, new FullPropertyImplementation() {

        @Override
        public String build(CoreInstance property, String name, CoreInstance unresolvedReturnType, CoreInstance returnType, CoreInstance returnMultiplicity, String returnTypeJava, String classOwnerFullId, String ownerClassName, String ownerTypeParams, ProcessorContext processorContext) {
            CoreInstance propertyOwner = Instance.getValueForMetaPropertyToOneResolved(property, M3Properties.owner, processorSupport);
            String propertyString = "";
            boolean includeGettor = !useJavaInheritance || propertyOwner == _class || Instance.instanceOf(propertyOwner, associationClass, processorSupport);
            if (includeGettor) {
                propertyString += Multiplicity.isToOne(returnMultiplicity, false) ? "    public " + returnTypeJava + " _" + name + ";\n" : "    public RichIterable _" + name + " = Lists.mutable.with();\n";
            }
            propertyString += buildProperty(property, ownerClassName + (ownerTypeParams.isEmpty() ? "" : "<" + ownerTypeParams + ">"), "this", classOwnerFullId, name, returnType, unresolvedReturnType, returnMultiplicity, processorContext.getSupport(), includeGettor, processorContext);
            return propertyString;
        }
    }, processorContext, processorSupport) + buildQualifiedProperties(classGenericType, processorContext, processorSupport) + buildCopy(classGenericType, CLASS_IMPL_SUFFIX, isGetterOverride, processorSupport) + (ClassProcessor.isLazy(_class) ? buildEquality(classGenericType, CLASS_IMPL_SUFFIX, true, false, true, processorContext, processorSupport) : buildEquality(classGenericType, CLASS_IMPL_SUFFIX, false, false, false, processorContext, processorSupport)) + buildGetFullSystemPath() + // Not supported on platform classes yet
    (ClassProcessor.isPlatformClass(_class) ? "" : validate(_class, className, classGenericType, processorContext, processorSupport.class_getSimpleProperties(_class))) + "}");
}
Also used : CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) ProcessorContext(org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext)

Example 5 with ProcessorContext

use of org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext in project legend-pure by finos.

the class UnitInstanceInterfaceProcessor method getAllGeneralizations.

static ListIterable<String> getAllGeneralizations(ProcessorContext processorContext, ProcessorSupport processorSupport, CoreInstance _class, String suffix) {
    return Instance.getValueForMetaPropertyToManyResolved(_class, M3Properties.generalizations, processorContext.getSupport()).collect(oneGeneralization -> {
        CoreInstance generalGenericType = Instance.getValueForMetaPropertyToOneResolved(oneGeneralization, M3Properties.general, processorSupport);
        String typeArgs = generalGenericType.getValueForMetaPropertyToMany(M3Properties.typeArguments).collect(i -> TypeProcessor.typeToJavaObjectSingle(i, true, processorContext.getSupport())).makeString(",");
        return typeName(processorSupport, suffix, generalGenericType, typeArgs);
    }, Lists.mutable.empty());
}
Also used : PackageableElement(org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement) ProcessorContext(org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext) Instance(org.finos.legend.pure.m3.navigation.Instance) Lists(org.eclipse.collections.api.factory.Lists) ListIterable(org.eclipse.collections.api.list.ListIterable) StringJavaSource(org.finos.legend.pure.runtime.java.compiled.compiler.StringJavaSource) TypeProcessor(org.finos.legend.pure.runtime.java.compiled.generation.processors.type.TypeProcessor) M3Properties(org.finos.legend.pure.m3.navigation.M3Properties) CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance) M3Paths(org.finos.legend.pure.m3.navigation.M3Paths) ProcessorSupport(org.finos.legend.pure.m3.navigation.ProcessorSupport) CoreInstance(org.finos.legend.pure.m4.coreinstance.CoreInstance)

Aggregations

ProcessorContext (org.finos.legend.pure.runtime.java.compiled.generation.ProcessorContext)7 CoreInstance (org.finos.legend.pure.m4.coreinstance.CoreInstance)6 ProcessorSupport (org.finos.legend.pure.m3.navigation.ProcessorSupport)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 NoSuchElementException (java.util.NoSuchElementException)2 JavaCompiler (javax.tools.JavaCompiler)2 Function (org.eclipse.collections.api.block.function.Function)2 ListIterable (org.eclipse.collections.api.list.ListIterable)2 MutableList (org.eclipse.collections.api.list.MutableList)2 MutableMap (org.eclipse.collections.api.map.MutableMap)2 IntObjectMap (org.eclipse.collections.api.map.primitive.IntObjectMap)2 Pair (org.eclipse.collections.api.tuple.Pair)2 PureAssertFailException (org.finos.legend.pure.m3.exception.PureAssertFailException)2 PureExecutionException (org.finos.legend.pure.m3.exception.PureExecutionException)2 Instance (org.finos.legend.pure.m3.navigation.Instance)2 M3Paths (org.finos.legend.pure.m3.navigation.M3Paths)2 M3Properties (org.finos.legend.pure.m3.navigation.M3Properties)2 PackageableElement (org.finos.legend.pure.m3.navigation.PackageableElement.PackageableElement)2 InvalidFunctionDescriptorException (org.finos.legend.pure.m3.navigation.function.InvalidFunctionDescriptorException)2 PureException (org.finos.legend.pure.m4.exception.PureException)2