/// <summary>
        /// Adds a condition item with specified MatchMode
        /// </summary>
        /// <param name="matchMode">Conditions match mode</param>
        /// <param name="name">Condition name</param>
        /// <param name="value">Condition value</param>
        public void AddConditionItem(MatchMode matchMode, string name, string value)
        {
            MatchRuleChecker.Check(matchMode, name);
            switch (matchMode)
            {
            case MatchMode.Exact:
                _conds.Add(new EqualConditionItem(name, value, TupleType.Three));
                break;

            case MatchMode.StartWith:
                _conds.Add(new StartWithConditionItem(name, value));
                break;

            default:
                throw new InvalidEnumArgumentException("Unsupported match mode " +
                                                       matchMode);
            }
        }
 /// <summary>
 /// Adds a condition item with exact MatchMode
 /// </summary>
 /// <param name="name">Condition name</param>
 /// <param name="value">Condition value</param>
 public void AddConditionItem(string name, string value)
 {
     MatchRuleChecker.Check(MatchMode.Exact, name);
     _conds.Add(new EqualConditionItem(name, value));
 }