예제 #1
0
        public static void LowerTransformations(AstEtlRootNode astDataflow, DataflowLoweringContext context)
        {
            var sortedTransformations = SortTransformations(astDataflow.Transformations);

            foreach (AstTransformationNode astTransformation in sortedTransformations)
            {
                PhysicalLoweringProcessor.Lower(astTransformation, context);
            }
        }
예제 #2
0
        private static void LowerChildren(AstTask.AstContainerTaskNode container, LoweringContext context)
        {
            foreach (AstTask.AstVariableNode variable in container.Variables)
            {
                PhysicalLoweringProcessor.Lower(variable, context);
            }

            var sortedTasks = SortTasks(container, container.Tasks);

            foreach (AstTask.AstTaskNode task in sortedTasks)
            {
                PhysicalLoweringProcessor.Lower(task, context);
            }
        }
예제 #3
0
        public static void LowerEventHandlers(AstTask.AstTaskNode astTaskNode, Executable parentExecutable, LoweringContext context)
        {
            foreach (AstTask.AstTaskEventHandlerNode astTaskEventHandler in astTaskNode.Events)
            {
                PhysicalTask.EventHandler e = new IR.Tasks.EventHandler(astTaskEventHandler, parentExecutable);
                context.ParentObject.Children.Add(e);

                foreach (AstTask.AstTaskNode task in astTaskEventHandler.Tasks)
                {
                    context = new TaskLoweringContext(e);
                    PhysicalLoweringProcessor.Lower(task, context);
                }
            }
        }