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(); }
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); }