예제 #1
0
        public EscritorObjetoDatos(IEscritor escritor, IObjetoDatos od)
        {
            _escritor = escritor;
            _od       = od;

            _propiedades = from propiedad in _od.Tipo.Propiedades
                           where propiedad.Tipo.EsTipoDeDato && _od.Establecido(propiedad)
                           select propiedad;
        }
        private void EscribirReferencias()
        {
            var referencias = from propiedad in _od.Tipo.Propiedades
                              where !propiedad.Tipo.EsTipoDeDato && _od.Establecido(propiedad)
                              select propiedad;

            foreach (IPropiedad referencia in referencias)
            {
                if (referencia.Cardinalidad >= Cardinalidad.Muchos)
                {
                    EscribirColeccion(referencia);
                }
                else
                {
                    _modelo.Crear(_od, referencia).Escribir();
                }
            }
        }
예제 #3
0
        private void CrearPropiedad(NodoObjeto nodo, IPropiedad propiedad)
        {
            if (propiedad.Tipo.EsTipoDeDato)
            {
                return;
            }

            IObjetoDatos od = nodo.Objeto.ObjetoDatos;

            if (!od.Establecido(propiedad))
            {
                return;
            }

            // crear nodo
            NodoReferencia nodoprop = new NodoReferencia(nodo, propiedad);

            nodo.Agregar(nodoprop);

            // crear nodos hijos
            CrearObjeto(nodoprop);
        }