/**Crea un nuevo archivo a partir de alguna organiacion de archivos *En el archivo destino, carga todo el diccionario de datos, sin datos*/ public void creaCopia(CArchivo aO, CArchivo aC) { CNodoAtributo auxAtri, nuevo = null; CNodoEntidad auxEnt, auxEntRel; auxEnt = aO.getListaEntidad().getCabListEnt(); //Copiar las entidades while (auxEnt != null) { aC.AltaEntidad(new CNodoEntidad(auxEnt.getNombre())); auxEnt = auxEnt.getSigEnt(); } //Copiar los atributos y sus relaciones de clave foranea auxEnt = aO.getListaEntidad().getCabListEnt(); while (auxEnt != null) { auxAtri = auxEnt.getCabListAtri(); while (auxAtri != null) { nuevo = new CNodoAtributo(); nuevo.setClavePrimaria(auxAtri.getClave()); nuevo.setNombre(auxAtri.getNombre()); nuevo.setTipo(auxAtri.getTipo()); nuevo.setTamaño(auxAtri.getTamaño()); nuevo.setEntRel(null); if (auxAtri.getEntRel() != null) { string entRel = auxAtri.getEntRel().getNombre(); auxEntRel = aC.getListaEntidad().getCabListEnt(); for (; auxEntRel != null; auxEntRel = auxEntRel.getSigEnt()) if (auxEntRel.getNombre().CompareTo(entRel) == 0) break; nuevo.setEntRel(auxEntRel); nuevo.setApEntRel(auxEntRel.getDir()); } aC.AltaAtributo(nuevo, auxEnt.getNombre()); auxAtri = auxAtri.getSigAtri(); } auxEnt = auxEnt.getSigEnt(); } }