Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void ReadXml(System.Xml.XmlReader reader)
        {
            //Lista ordenada que nos ayudará a resolver las referencias de tipo id
            SortedList <int, XMLEstado> estados = new SortedList <int, XMLEstado>();

            reader.ReadToFollowing("Nombre");
            Nombre    = reader.ReadElementString("Nombre");
            IdEntidad = Convert.ToInt32(reader.ReadElementString("IdEntidad"));
            Entidad   = reader.ReadElementString("Entidad");

            if (reader.Name.Equals("XMLEstados"))
            {
                reader.Read();
                do
                {
                    XmlSerializer serializer = new XmlSerializer(xmlEstadoType);


                    XMLEstado item = serializer.Deserialize(reader) as XMLEstado;

                    item.Flujograma = this;

                    estados.Add(item.Estado, item);
                } while (reader.Name.Equals(xmlEstadoType.Name));

                XMLEstados = estados.Values.ToArray();

                reader.Read();
            }

            if (reader.Name.Equals("XMLTransiciones"))
            {
                List <XMLTransicion> est = new List <XMLTransicion>();

                reader.Read();
                do
                {
                    XmlSerializer serializer = new XmlSerializer(xmlTransicionType);


                    XMLTransicion trans = (XMLTransicion)serializer.Deserialize(reader);

                    trans.Origen     = estados[trans.Origen.Estado];
                    trans.Destino    = estados[trans.Destino.Estado];
                    trans.Flujograma = this;

                    est.Add(trans);
                } while (reader.Name.Equals(xmlTransicionType.Name));

                XMLTransiciones = est.ToArray();

                reader.Read();
            }

            reader.ReadEndElement();
        }
Exemplo n.º 3
0
        public ITransicion Remove(ITransicion transicion)
        {
            ITransicion sol = null;

            if (_transiciones.Remove(XMLTransicion.Transformar(transicion)))
            {
                sol = transicion;
            }

            return(sol);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 public bool EsValido(ITransicion transion)
 {
     return(_transiciones.Contains(XMLTransicion.Transformar(transion)));
 }