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