//Constructors /// <summary> /// Creates an unitialized instance /// </summary> /// <param name="name">The name of the group.</param> /// <param name="decisionCfg">The configuration of the decision.</param> public OneTakesAllGroupSettings(string name, IOneTakesAllDecisionSettings decisionCfg) { Name = name; DecisionCfg = (IOneTakesAllDecisionSettings)decisionCfg.DeepClone(); Check(); return; }
/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">A xml element containing the configuration data.</param> public OneTakesAllGroupSettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing Name = settingsElem.Attribute("name").Value; XElement decisionElem = settingsElem.Elements().FirstOrDefault(); if (decisionElem.Name.LocalName == "basicDecision") { DecisionCfg = new OneTakesAllBasicDecisionSettings(decisionElem); } else if (decisionElem.Name.LocalName == "clusterChainDecision") { DecisionCfg = new OneTakesAllClusterChainDecisionSettings(decisionElem); } else { throw new ArgumentException($"Unknown decision configuration element {decisionElem.Name.LocalName}.", "elem"); } Check(); return; }