Example #1
0
        /// <summary>
        /// Visits the given input data node.
        /// </summary>
        /// <param name="data">Input data node.</param>
        public override void Visit(MutexGroup data)
        {
            Location = "Mutex groups";

            HashSet <Tuple <int, int> > uniqueFacts = new HashSet <Tuple <int, int> >();

            data.ForEach(mutexFact => uniqueFacts.Add(Tuple.Create(mutexFact.Variable, mutexFact.Value)));

            if (uniqueFacts.Count != data.Count)
            {
                throw GetException("Some mutex group contains duplicated mutex facts, which is invalid.");
            }
        }