Ejemplo n.º 1
0
        private static void LoadActions(XMLTool T, XmlLoad X, bool Custom)
        {
            while (X.Read())
            {
                XMLToolAction A = LoadAction(X.GetSubtree());
                A.Name = X.ElementName;

                T.Actions.Add(A);
            }

            X.Close();
        }
Ejemplo n.º 2
0
        private static XMLToolAction LoadAction(XmlLoad X)
        {
            XMLToolAction A = new XMLToolAction();

            while (X.Read())
            {
                switch (X.ElementName)
                {
                case "command": A.Command = X.GetAttribute("value"); break;

                case "toolpath": A.CustomToolPath = X.GetAttribute("value"); break;

                case "params":
                {
                    XmlLoad Subtree = X.GetSubtree();
                    while (Subtree.Read())
                    {
                        var Name = Subtree.ElementName;
                        var Def  = Subtree.GetAttribute("default") ?? "";

                        A.Defaults.Set(Name, Def);
                    }
                    Subtree.Close();
                }
                break;

                case "error":
                {
                    XmlLoad Subtree = X.GetSubtree();
                    while (Subtree.Read())
                    {
                        switch (Subtree.ElementName)
                        {
                        case "string": A.ErrorMask.Add(new StringMatch(Subtree.GetAttribute("value"))); break;

                        case "regex": A.ErrorMask.Add(new RegexMatch(Subtree.GetAttribute("value"))); break;

                        case "exitcode": A.ErrorMask.Add(new ExitCodeMatch()); break;
                        }
                    }
                    Subtree.Close();
                }
                break;

                case "warning":
                {
                    XmlLoad Subtree = X.GetSubtree();
                    while (Subtree.Read())
                    {
                        switch (Subtree.ElementName)
                        {
                        case "string": A.WarningMask.Add(new StringMatch(Subtree.GetAttribute("value"))); break;

                        case "regex": A.WarningMask.Add(new RegexMatch(Subtree.GetAttribute("value"))); break;

                        case "exitcode": A.WarningMask.Add(new ExitCodeMatch()); break;
                        }
                    }
                    Subtree.Close();
                }
                break;
                }
            }

            return(A);
        }