Beispiel #1
0
        /***************************************************************************/

        public void addConnection(ILogicalElement _element, int _pin)
        {
            if (m_sourceElement != null && _element == m_sourceElement.Item1)
            {
                throw new ArgumentException(
                          Resoursers.Exceptions.Messages.combinationalFeedback);
            }

            if (hasConnection(_element, _pin))
            {
                throw new ArgumentException(
                          string.Format(Resoursers.Exceptions.Messages.duplicateConnection, _element.ID));
            }

            if (hasConnection(_element))
            {
                m_elements2Pins[_element].Add(_pin);
            }
            else
            {
                PinsSet pinsSet = new PinsSet();
                pinsSet.Add(_pin);
                m_elements2Pins.Add(_element, pinsSet);
            }
        }
Beispiel #2
0
        public void addElement()
        {
            ILogicalElement sourceElement = new Fakes.FakeElement();

            ILine line = new Line(sourceElement, 0);

            Fakes.FakeElement element = new Fakes.FakeElement();

            line.addConnection(element, 0);
            line.addConnection(element, 1);

            Assert.AreEqual(line.ElementsConnected, 1);

            PinsSet set = line.getConnections(element);

            Assert.AreEqual(set.Count, 2);
            Assert.IsTrue(set.Contains(0));
            Assert.IsTrue(set.Contains(1));
        }
Beispiel #3
0
        /***************************************************************************/

        public void removeConnection(ILogicalElement _element, int _pin)
        {
            if (!hasConnection(_element))
            {
                throw new ArgumentException(
                          string.Format(Resoursers.Exceptions.Messages.noElementConnection, _element.ID));
            }

            PinsSet set = m_elements2Pins[_element];

            if (!set.Contains(_pin))
            {
                throw new ArgumentException(
                          string.Format(Resoursers.Exceptions.Messages.noPinConnection, _pin, _element.ID));
            }

            set.Remove(_pin);

            if (set.Count == 0)
            {
                m_elements2Pins.Remove(_element);
            }
        }