コード例 #1
0
ファイル: Pipeline.cs プロジェクト: lanicon/ImportPipeline
        private bool checkTemplates(PipelineContext ctx, String key, ref Object lastTemplate)
        {
            PipelineAction a            = null;
            String         templateExpr = null;
            int            i;

            for (i = 0; i < templates.Count; i++)
            {
                lastTemplate = templates[i];
                a            = templates[i].OptCreateAction(ctx, key);
                if (a != null)
                {
                    goto ADD_TEMPLATE;
                }
            }
            a = new PipelineNopAction(key);
            actions.Add(new ActionAdmin(a.Name, actions.Count, a));
            prepareActions();
            return(false);

ADD_TEMPLATE:
            templateExpr = templates[i].Expr;
            missed[key]  = templateExpr;
            while (true)
            {
                a.Start(ctx);
                actions.Add(new ActionAdmin(a.Name, actions.Count, a));
                i++;
                if (i >= templates.Count)
                {
                    break;
                }
                if (!templates[i].Expr.Equals(templateExpr, StringComparison.InvariantCultureIgnoreCase))
                {
                    break;
                }
                a = templates[i].OptCreateAction(ctx, key);
                if (a == null)
                {
                    break;
                }
            }
            prepareActions();
            return(true);
        }
コード例 #2
0
 public PipelineNopTemplate(Pipeline pipeline, XmlNode node)
     : base(pipeline, node)
 {
     template = new PipelineNopAction(pipeline, node);
 }
コード例 #3
0
 internal PipelineNopAction(PipelineNopAction template, String name, Regex regex)
     : base(template, name, regex)
 {
 }