Beispiel #1
0
        public UndupScriptAction(ImportEngine engine, IPostProcessor processor, XmlNode node)
        {
            originalNode = node;
            ScriptName   = node.ReadStr("@script", null);
            ScriptBody   = node.ReadStr(null, null);
            if (ScriptBody == null)
            {
                if (ScriptName == null)
                {
                    throw new BMNodeException(node, "@script should be specified if there is no script in the body.");
                }
            }
            else
            {
                ScriptBody = ScriptBody.TrimWhiteSpaceToNull();
                if (ScriptBody != null && ScriptName != null)
                {
                    throw new BMNodeException(node, "Cannot have a script in the body when @script is specified.");
                }
                var scriptHolder = engine.ScriptExpressions;

                bodyFunc = ScriptExpressionHolder.GenerateScriptName("postprocessor_undup", processor.Name, node);
                scriptHolder.AddUndupExpression(bodyFunc, ScriptBody);
            }
        }
        public DelayedScriptHolder(ImportEngine engine, XmlNode node, String name)
        {
            this.Node = node;
            String body = null;

            if (node != null)
            {
                ScriptName = ImportEngine.ReadScriptNameOrBody(node, "@script", out body);
            }

            if (body != null)
            {
                ScriptName   = ScriptExpressionHolder.GenerateScriptName("postprocessor_", name, node);
                IsExpression = true;
                engine.ScriptExpressions.AddExpression(ScriptName, body);
            }
        }