Ejemplo n.º 1
0
        static BuilderObjetoDatos()
        {
            _rnd       = new Random();
            _delegados = new Dictionary <Type, Action <IObjetoDatos, IPropiedad> >(16);

            _delegados[typeof(bool)]     = (od, propiedad) => od.EstablecerBoolean(propiedad, true);
            _delegados[typeof(byte)]     = (od, propiedad) => od.EstablecerByte(propiedad, byte.MaxValue);
            _delegados[typeof(char)]     = (od, propiedad) => od.EstablecerChar(propiedad, char.MaxValue);
            _delegados[typeof(DateTime)] = (od, propiedad) => od.EstablecerDateTime(propiedad, DateTime.Now);                            //DateTime.MaxValue);
            _delegados[typeof(decimal)]  = (od, propiedad) => od.EstablecerDecimal(propiedad, (decimal)_rnd.NextDouble() * _rnd.Next()); //decimal.MaxValue);
            _delegados[typeof(double)]   = (od, propiedad) => od.EstablecerDouble(propiedad, _rnd.NextDouble() * _rnd.Next());           //double.MaxValue);
            _delegados[typeof(float)]    = (od, propiedad) => od.EstablecerFloat(propiedad, float.MaxValue);
            _delegados[typeof(int)]      = (od, propiedad) => od.EstablecerInteger(propiedad, int.MaxValue);
            _delegados[typeof(long)]     = (od, propiedad) => od.EstablecerLong(propiedad, long.MaxValue);
            _delegados[typeof(sbyte)]    = (od, propiedad) => od.EstablecerSByte(propiedad, sbyte.MaxValue);
            _delegados[typeof(short)]    = (od, propiedad) => od.EstablecerShort(propiedad, short.MaxValue);
            _delegados[typeof(string)]   = (od, propiedad) => od.EstablecerString(propiedad, "texto");
            _delegados[typeof(uint)]     = (od, propiedad) => od.EstablecerUInteger(propiedad, uint.MaxValue);
            _delegados[typeof(ulong)]    = (od, propiedad) => od.EstablecerULong(propiedad, ulong.MaxValue);
            _delegados[typeof(ushort)]   = (od, propiedad) => od.EstablecerUShort(propiedad, ushort.MaxValue);

            _tipo = HelperTipo.ObtenerTipo(); // BuilderTipo.Construir();

            _od = Construir(_tipo, 1, 6);
            _od.EstablecerInteger("atributoId", 0);
            _od.EstablecerString("atributoString", "Objeto agregado");
        }
Ejemplo n.º 2
0
        public static IObjetoDatos Construir(ITipo tipo, int niveles, int items)
        {
            IObjetoDatos od = Fabrica.Instancia.Crear(tipo);

            Construir(od, niveles, items);
            return(od);
        }
Ejemplo n.º 3
0
 public MetodoEscrituraTipo(IModeloEscritura modelo, IEscritor escritor, IMetodoEscritura metodoEscritura, IObjetoDatos od, int refid)
     : base(modelo, escritor)
 {
     _od              = od;
     _tipo            = od.Tipo;
     _refid           = refid;
     _metodo          = Metodo.Tipo;
     _metodoescritura = metodoEscritura;
 }
        private void AgregarTipo(ITipo tipo)
        {
            string clave = $"{tipo.Uri}.{tipo.Nombre}";

            if (!_tipos.ContainsKey(clave))
            {
                _tipos.Add(clave, tipo);
            }
        }
Ejemplo n.º 5
0
        public IPropiedad Leer(ITipo contexto)
        {
            IPropiedad propiedad = null;

            if (_reader.MoveToNextAttribute())
            {
                propiedad = contexto[_reader.Name];
            }

            return(propiedad);
        }
        private void ConstruirTipos(ITipo contexto)
        {
            var propiedades = from propiedad in contexto.Propiedades
                              where !propiedad.Tipo.EsTipoDeDato && propiedad.Asociacion == Estructura.Asociacion.Agregacion
                              select propiedad;

            foreach (IPropiedad propiedad in propiedades)
            {
                ConstruirTipos(propiedad);
            }
        }
Ejemplo n.º 7
0
        public EvaluarObjetoDatos()
        {
            _tipo = new Tipo();
            BuilderTipo.Construir((Tipo)_tipo);
            _tipox = new Tipo();
            BuilderTipo.Construir2((Tipo)_tipox);

            // eliminar propiedad "id"
            if (_tipo.ContienePropiedad("atributoId"))
            {
                ((Tipo)_tipo).RemoverPropiedad(_tipo["atributoId"]);
            }
            if (_tipox.ContienePropiedad("atributoId"))
            {
                ((Tipo)_tipox).RemoverPropiedad(_tipox["atributoId"]);
            }
        }
        static HelperDiagrama()
        {
            Tipo tipo = new Tipo();

            tipo.AgregarPropiedad(new Propiedad {
                Nombre = "ruta", Tipo = Primarios.String
            });
            BuilderTipo.Construir2(tipo);
            _tipo = tipo;

            tipo = new Tipo();
            tipo.AgregarPropiedad(new Propiedad {
                Nombre = "ruta", Tipo = Primarios.String
            });
            BuilderTipo.Construir3(tipo);
            _tipox = tipo;

            ((Propiedad)_tipo.ObtenerPropiedad("ReferenciaObjetoDatos2")).Tipo = _tipo;
            //((Propiedad)_tipo.ObtenerPropiedad("ReferenciaObjetoDatosItem2")).Tipo = _tipo;
        }
        private IObjetoDatos Instanciar(int refid, string uri, string nombre)
        {
            // obtener el tipo
            ITipo        tipo = _tipos[$"{uri}.{nombre}"];
            IObjetoDatos od;

            // instanciar el od
            if (refid == 0) //(tipo == _od.Tipo)
            {
                od = _od;
            }
            else
            {
                od = Fabrica.Instancia.Crear(tipo);
            }

            // agregar el od
            _stack.Agregar(od, refid);

            return(od);
        }
 public IImplementacion Crear(ITipo tipo)
 {
     return(new Implementacion(tipo));
 }
Ejemplo n.º 11
0
        public void CrearDiagramaAgregacion()
        {
            IObjetoDatos od = HelperDiagrama.CrearObjetoDatosX();

            Helper.Construir(od, 2, 5);
            HelperDiagrama.EstablecerAtributoRuta(od);

            ITipo tipoagr = od.Tipo.ObtenerPropiedad("ReferenciaObjetoDatos2").Tipo;

            IObjetoDatos odagr  = Helper.Crear(tipoagr);
            IObjetoDatos odagr2 = Helper.Crear(tipoagr);

            odagr.CrearObjetoDatos("ReferenciaObjetoDatos");
            odagr.EstablecerObjetoDatos("ReferenciaObjetoDatos2", odagr2);
            odagr2.EstablecerObjetoDatos("ReferenciaObjetoDatos2", odagr); // establecer referencia agregacion apuntando al contenedor (odgr)

            od.EstablecerObjetoDatos("ReferenciaObjetoDatos2", odagr);

            BuilderDiagrama helper = new BuilderDiagrama();
            Diagrama        diag   = helper.Crear(od);

            NodoReferencia nodoprop1 = (NodoReferencia)diag.Root.Nodos[0];
            NodoReferencia nodoprop3 = (NodoReferencia)diag.Root.Nodos[2];
            NodoObjeto     nodoobj1  = (NodoObjeto)nodoprop1.Nodos[0];
            NodoObjeto     nodoobj3  = (NodoObjeto)nodoprop3.Nodos[0];

            IPropiedad   prop1 = od.Tipo.ObtenerPropiedad("ReferenciaObjetoDatos");
            IPropiedad   prop3 = od.Tipo.ObtenerPropiedad("ReferenciaObjetoDatos2");
            IObjetoDatos obj1  = od.ObtenerObjetoDatos(prop1);
            IObjetoDatos obj3  = od.ObtenerObjetoDatos(prop3);

            Assert.IsNotNull(nodoprop1);
            Assert.IsNotNull(nodoprop3);
            Assert.IsNotNull(prop1);
            Assert.IsNotNull(prop3);
            Assert.IsNotNull(obj1);
            Assert.IsNotNull(obj3);

            Assert.AreEqual(prop1, nodoprop1.Propiedad);
            Assert.AreEqual(prop3, nodoprop3.Propiedad);
            Assert.AreEqual(obj1, nodoobj1.Objeto.ObjetoDatos);
            Assert.AreEqual(obj3, nodoobj3.Objeto.ObjetoDatos);

            Assert.AreEqual("/ReferenciaObjetoDatos", nodoobj1.Objeto.Propietario);
            Assert.AreEqual("/ReferenciaObjetoDatos2", nodoobj3.Objeto.Propietario);


            nodoprop1 = (NodoReferencia)nodoobj3.Nodos[0];
            nodoprop3 = (NodoReferencia)nodoobj3.Nodos[1];
            nodoobj1  = (NodoObjeto)nodoprop1.Nodos[0];
            nodoobj3  = (NodoObjeto)nodoprop3.Nodos[0];

            prop1 = odagr.Tipo.ObtenerPropiedad("ReferenciaObjetoDatos");
            prop3 = odagr.Tipo.ObtenerPropiedad("ReferenciaObjetoDatos2");
            obj1  = odagr.ObtenerObjetoDatos(prop1);
            obj3  = odagr.ObtenerObjetoDatos(prop3);

            Assert.IsNotNull(nodoprop1);
            Assert.IsNotNull(nodoprop3);
            Assert.IsNotNull(prop1);
            Assert.IsNotNull(prop3);
            Assert.IsNotNull(obj1);
            Assert.IsNotNull(obj3);

            Assert.AreEqual(prop1, nodoprop1.Propiedad);
            Assert.AreEqual(prop3, nodoprop3.Propiedad);
            Assert.AreEqual(obj1, nodoobj1.Objeto.ObjetoDatos);
            Assert.AreEqual(odagr2, nodoobj3.Objeto.ObjetoDatos);

            Assert.AreEqual("/ReferenciaObjetoDatos2/ReferenciaObjetoDatos", nodoobj1.Objeto.Propietario);
            Assert.AreEqual("/ReferenciaObjetoDatos2/ReferenciaObjetoDatos2", nodoobj3.Objeto.Propietario);

            // verificar la referencia odgr2.ReferenciaObjetoDatos2 => odagr
            nodoprop1 = (NodoReferencia)nodoobj3.Nodos[0];
            nodoobj1  = (NodoObjeto)nodoprop1.Nodos[0];
            obj1      = odagr2.ObtenerObjetoDatos("ReferenciaObjetoDatos2");

            Assert.AreEqual(odagr, obj1);

            Assert.AreEqual("/ReferenciaObjetoDatos2", nodoobj1.Objeto.Propietario);
        }
 protected virtual IObjetoDatos CrearObjetoDatos(ITipo tipo)
 {
     return(Fabrica.Instancia.Crear(tipo));
 }
Ejemplo n.º 13
0
 public IObjetoDatos Crear(ITipo tipo, IObjetoDatos propietario)
 {
     return(Crear(FabricaImplementacion.Instancia.Crear(tipo, propietario)));
 }
Ejemplo n.º 14
0
 public abstract IImplementacion Crear(ITipo tipo, IObjetoDatos propietario);
Ejemplo n.º 15
0
 public Contenido(ITipo tipo)
 {
     Tipo             = tipo;
     _caracteristicas = new Dictionary <IPropiedad, Caracteristica>(tipo.Propiedades.Count);
     Construir();
 }
 public IObjetoDatosImpl Crear(ITipo tipo, ObjetoDatos propietario)
 {
     return(new DecoradorHistorial(_impl.Crear(tipo, propietario), _historial));
 }
 internal Implementacion(ITipo tipo, IObjetoDatos propietario)
     : this(tipo)
 {
     _propietario = propietario;
 }
        public IPropiedad Leer(ITipo contexto)
        {
            int indice = _reader.ReadInt32();

            return(contexto?[indice]);
        }
Ejemplo n.º 19
0
        //public override IImplementacion Crear(ITipo tipo)
        //{
        //    return new HistorialImpl(_impl.Crear(tipo), _historial);
        //}

        public override IImplementacion Crear(ITipo tipo, IObjetoDatos propietario)
        {
            return(new HistorialImpl(_impl.Crear(tipo, propietario), _historial));
        }
Ejemplo n.º 20
0
 static HelperTipo()
 {
     BuilderTipo.Construir((Tipo)(_tipo = new Tipo()));
     BuilderTipo.Construir2((Tipo)(_tipo2 = new Tipo()));
     BuilderTipo.Construir3((Tipo)(_tipo3 = new Tipo()));
 }
Ejemplo n.º 21
0
 public override IImplementacion Crear(ITipo tipo, IObjetoDatos propietario)
 {
     return(new ImplementacionNotificacion(_impl.Crear(tipo, propietario)));
 }
Ejemplo n.º 22
0
 public static IObjetoDatos Crear(ITipo tipo, IFabrica fabrica)
 {
     return(fabrica.Crear(tipo));
 }
Ejemplo n.º 23
0
 public static IObjetoDatos Crear(ITipo tipo)
 {
     return(Fabrica.Instancia.Crear(tipo));
 }
Ejemplo n.º 24
0
 public static Type ObtenerType(ITipo tipo)
 {
     return(Type.GetType(string.Format("{0}.{1}", tipo.Uri, tipo.Nombre)));
 }
 public IImplementacion Crear(ITipo tipo, IObjetoDatos propietario)
 {
     return(new Implementacion(tipo, propietario));
 }
        IObjetoDatos IFabrica.Crear(ITipo tipo, IObjetoDatos propietario)
        {
            IImplementacion impl = Crear(tipo, propietario);

            return(CrearObjetoDatos(impl));
        }
 internal Implementacion(ITipo tipo)
 {
     _impl = new Contenido(tipo);
 }