Example #1
0
        public override bool Equals(object obj)
        {
            if (!base.Equals(obj))
            {
                return(false);
            }

            NonTerminalState objNonTerminalState = obj as NonTerminalState;

            if (objNonTerminalState == null)
            {
                return(false);
            }

            foreach (Transition transition in this.Transitions)
            {
                if (!objNonTerminalState.Transitions.Has(transition))
                {
                    return(false);
                }
            }

            return(true);
        }
Example #2
0
 protected void Validate(NonTerminalState nonTerminalState)
 {
     this.ValidateBase((State)nonTerminalState);
     Invariant(nonTerminalState.Transitions!= null && !nonTerminalState.Transitions.IsEmpty(),
         "nonTerminalState.Transitions must not be null or empty.");
     foreach (Transition transition in nonTerminalState.Transitions)
         this.Validate(transition);
 }
Example #3
0
        internal static State State(string typeName)
        {
            DesignByContract.Check.Require(!string.IsNullOrEmpty(typeName), string.Format(CommonStrings.XMustNotBeNullOrEmpty, "typeName"));

            State state = null;

            switch (typeName)
            {
                case "NON_TERMINAL_STATE":
                    state = new NonTerminalState();
                    break;
                case "TERMINAL_STATE":
                    state = new TerminalState();
                    break;
                default:
                    throw new NotSupportedException("type not supported: " + typeName);
            }

            DesignByContract.Check.Ensure(state != null, "state must not be null.");

            return state;
        }
Example #4
0
        private void WriteXml(NonTerminalState state)
        {
            Check.Require(state.Transitions != null && !state.Transitions.IsEmpty(),
                string.Format(CommonStrings.XMustNotBeNullOrEmpty, "state.Transitions"));

            this.WriteXmlBase((State)state);
            foreach (Transition transition in state.Transitions)
            {
                writer.WriteStartElement(UseOpenEhrPrefix(writer), "transitions", OpenEhrNamespace);
                this.WriteXml(transition);
                writer.WriteEndElement();
            }
        }
Example #5
0
        private void ReadXml(NonTerminalState state)
        {
            Check.Require(state != null, "nonTerminalState must not be null.");

            reader.ReadStartElement();
            reader.MoveToContent();

            this.ReadXmlBase((State)state);

            if (reader.LocalName != "transitions")
                throw new InvalidXmlException("transitions", reader.LocalName);
            System.Collections.Generic.List<Transition> transitions = new System.Collections.Generic.List<Transition>();
            do
            {
                Transition transition = new Transition();
                this.ReadXml(transition);
                transitions.Add(transition);
            } while (reader.LocalName != "transitions");

            Check.Assert(transitions.Count>0, "transitions must not be empty.");

            state.Transitions = new Set<Transition>(transitions);

            reader.ReadEndElement();
            reader.MoveToContent();
        }