public static XMLFlujograma Transformar(IFlujograma flujograma) { XMLFlujograma sol = null; if (flujograma is XMLFlujograma) { sol = flujograma as XMLFlujograma; } else { sol = new XMLFlujograma(); sol.Entidad = flujograma.Entidad; XMLEstado[] estados = new XMLEstado[flujograma.Estados.Length]; for (int i = 0; i < estados.Length; i++) { estados[i] = XMLEstado.Tranformar(flujograma.Estados[i]); } sol.XMLEstados = estados; sol.IdEntidad = flujograma.IdEntidad; sol.Nombre = flujograma.Nombre; XMLTransicion[] transiciones = new XMLTransicion[flujograma.Transiciones.Length]; for (int i = 0; i < transiciones.Length; i++) { transiciones[i] = XMLTransicion.Transformar(flujograma.Transiciones[i]); } sol.XMLTransiciones = transiciones; } return(sol); }
public void Add(IEstado estado) { foreach (var item in _estados) { if (item.Estado == estado.Estado) { throw new ClaveDuplicadaException(); } } _estados.Add(XMLEstado.Tranformar(estado)); }
public void Add(ITransicion transicion) { if (!transicion.Flujograma.Equals(this)) { throw new NoMismoFlujogramaException(); } if (!_estados.Contains(XMLEstado.Tranformar(transicion.Origen)) || !_estados.Contains(XMLEstado.Tranformar(transicion.Destino))) { throw new NoSuchElementException(); } XMLTransicion tr = XMLTransicion.Transformar(transicion); if (!_transiciones.Contains(tr)) { _transiciones.Add(tr); } }