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); }
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); }
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; }
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(); } }
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(); }