예제 #1
0
 //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;
 }
예제 #2
0
        /// <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;
        }