Search in sources :

Example 1 with Root_meta_external_shared_format_ExternalFormatExtension

use of org.finos.legend.pure.generated.Root_meta_external_shared_format_ExternalFormatExtension in project legend-engine by finos.

the class TestExternalFormatQueries method runTest.

protected String runTest(PureModelContextData generated, String grammar, String query, String mappingPath, String runtimePath, InputStream input) {
    try {
        PureModelContextData parsed = PureGrammarParser.newInstance().parseModel(grammar);
        PureModelContextData modelData = generated == null ? parsed : parsed.combine(generated);
        ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports();
        String json = objectMapper.writeValueAsString(modelData);
        modelData = objectMapper.readValue(json, PureModelContextData.class);
        PureModel model = Compiler.compile(modelData, DeploymentMode.TEST, null);
        PureGrammarParser parser = PureGrammarParser.newInstance();
        Lambda lambdaProtocol = parser.parseLambda(query, "query", true);
        LambdaFunction<?> lambda = HelperValueSpecificationBuilder.buildLambda(lambdaProtocol.body, Lists.fixedSize.<Variable>empty(), model.getContext());
        ExecutionContext context = new Root_meta_pure_runtime_ExecutionContext_Impl(" ")._enableConstraints(true);
        RichIterable<Root_meta_external_shared_format_ExternalFormatExtension> planGenerationExtensions = LazyIterate.collect(ExternalFormatPlanGenerationExtensionLoader.extensions().values(), ext -> ext.getPureExtension(model.getExecutionSupport()));
        RichIterable<? extends Root_meta_pure_router_extension_RouterExtension> extensions = core_external_shared_extension.Root_meta_external_shared_format_routerExtensions_String_1__ExternalFormatExtension_MANY__RouterExtension_MANY_("externalFormat", planGenerationExtensions, model.getExecutionSupport());
        Mapping mapping = model.getMapping(mappingPath);
        Runtime runtime = model.getRuntime(runtimePath);
        String plan = PlanGenerator.generateExecutionPlanAsString(lambda, mapping, runtime, context, model, "vX_X_X", PlanPlatform.JAVA, "test", extensions, LegendPlanTransformers.transformers);
        PlanExecutor executor = PlanExecutor.newPlanExecutorWithAvailableStoreExecutors(true);
        Result result = executor.execute(plan, input);
        StreamingResult streamingResult = (StreamingResult) result;
        return streamingResult.flush(streamingResult.getSerializer(SerializationFormat.DEFAULT));
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
Also used : Root_meta_external_shared_format_ExternalFormatExtension(org.finos.legend.pure.generated.Root_meta_external_shared_format_ExternalFormatExtension) PlanExecutor(org.finos.legend.engine.plan.execution.PlanExecutor) Mapping(org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping) PureModel(org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel) PureGrammarParser(org.finos.legend.engine.language.pure.grammar.from.PureGrammarParser) Result(org.finos.legend.engine.plan.execution.result.Result) StreamingResult(org.finos.legend.engine.plan.execution.result.StreamingResult) Runtime(org.finos.legend.pure.m3.coreinstance.meta.pure.runtime.Runtime) ExecutionContext(org.finos.legend.pure.m3.coreinstance.meta.pure.runtime.ExecutionContext) StreamingResult(org.finos.legend.engine.plan.execution.result.StreamingResult) Root_meta_pure_runtime_ExecutionContext_Impl(org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext_Impl) Lambda(org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda) PureModelContextData(org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Aggregations

ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 PureModel (org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel)1 PureGrammarParser (org.finos.legend.engine.language.pure.grammar.from.PureGrammarParser)1 PlanExecutor (org.finos.legend.engine.plan.execution.PlanExecutor)1 Result (org.finos.legend.engine.plan.execution.result.Result)1 StreamingResult (org.finos.legend.engine.plan.execution.result.StreamingResult)1 PureModelContextData (org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData)1 Lambda (org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda)1 Root_meta_external_shared_format_ExternalFormatExtension (org.finos.legend.pure.generated.Root_meta_external_shared_format_ExternalFormatExtension)1 Root_meta_pure_runtime_ExecutionContext_Impl (org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext_Impl)1 Mapping (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping)1 ExecutionContext (org.finos.legend.pure.m3.coreinstance.meta.pure.runtime.ExecutionContext)1 Runtime (org.finos.legend.pure.m3.coreinstance.meta.pure.runtime.Runtime)1