Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Bean.CAT; import Model.CAT.Termino; import Model.CAT.TerminoLamina; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import javax.servlet.ServletContext; import org.apache.commons.collections.ListUtils; /** * * @author jean */ @ManagedBean(name = "modifTestBean") @ViewScoped public class ModifTestBean { List<Termino>[] listEliminTest; List<Termino>[] listModifTest; List<TerminoLamina>[] listNuevosTermAsocDicc; List<TerminoLamina>[] listNuevosTermDicc; List<TerminoLamina>[] listNuevosTermAsocDiccGlobal; List<TerminoLamina>[] listNuevosTermDiccGlobal; List<TerminoLamina>[] listNuevosTermAsocDiccGlobalTemp; List<TerminoLamina>[] listNuevosTermDiccGlobalTemp; List<TerminoLamina>[] diccionarioTemp; @ManagedProperty("#{adminTerminosBean}") private AdminTerminosBean adminTerminos; /** * Creates a new instance of ModifTestBean */ public ModifTestBean() throws IOException, FileNotFoundException, ClassNotFoundException { listEliminTest = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listEliminTest[i] == null) { listEliminTest[i] = new ArrayList<>(); } } listNuevosTermAsocDicc = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listNuevosTermAsocDicc[i] == null) { listNuevosTermAsocDicc[i] = new ArrayList<>(); } } listNuevosTermDicc = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listNuevosTermDicc[i] == null) { listNuevosTermDicc[i] = new ArrayList<>(); } } listModifTest = new ArrayList[10]; listNuevosTermDiccGlobal = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listNuevosTermDiccGlobal[i] == null) { listNuevosTermDiccGlobal[i] = new ArrayList<>(); } } listNuevosTermAsocDiccGlobal = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listNuevosTermAsocDiccGlobal[i] == null) { listNuevosTermAsocDiccGlobal[i] = new ArrayList<>(); } } if (diccionarioTemp == null) { diccionarioTemp = RI.deserializarTerminos(); } // listNuevosTermDiccGlobalTemp= new ArrayList[10]; // listNuevosTermDiccGlobalTemp=deserializarlistNuevosTermDiccGlobal(); // listNuevosTermAsocDiccGlobalTemp= new ArrayList[10]; // listNuevosTermAsocDiccGlobalTemp=deserializarNuevosTermAsocDiccGlobal(); } public void aadirTerminoAsocNuevoTerm(int idLam, Termino term) { for (TerminoLamina termLam : listNuevosTermDicc[idLam]) { if (termLam.getTermino().equals(term.getTerminoAsociado()) &&(!termLam.getTerminosAsociados().contains(term.getPalabra()))) { termLam.getTerminosAsociados().add(term.getPalabra()); System.out.println("se aadio un termino asociado a " + termLam.getTermino()); } } } public void aadirTerminoAsocNuevoTerminAsoc(int idLam, Termino term) { for (TerminoLamina termLam : listNuevosTermAsocDicc[idLam]) { if (termLam.getTermino().equals(term.getTerminoAsociado()) &&(!termLam.getTerminosAsociados().contains(term.getPalabra()))) { termLam.getTerminosAsociados().add(term.getPalabra()); System.out.println("se aadio un termino asociado a " + termLam.getTermino()); } } } public void removeNuevosTerminos(TerminoLamina termino, int idLamina) { try { //System.out.println(" se quiere eliminar de la lista de terminos "); //System.out.println("termino "+termino.getTermino()); //System.out.println("id de la lamina" + idLamina); //hay que borrar tambien los terminos del tesauro listNuevosTermDiccGlobalTemp[idLamina].remove(termino); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Exito! El trmino fue aceptado en el diccionario de trminos,", "El trmino fue Aceptado ")); } catch (Exception e) { e.printStackTrace(); } } public void rechazarNuevoTermino(TerminoLamina termino, int idLamina) throws IOException, FileNotFoundException, ClassNotFoundException { // List<TerminoLamina>[] diccionario= RI.deserializarTerminos(); TerminoLamina terminoEliminar = null; for (TerminoLamina termLam : diccionarioTemp[idLamina]) { if (termLam.getTermino().equals(termino.getTermino())) { terminoEliminar = termLam; } break; } diccionarioTemp[idLamina].remove(terminoEliminar); listNuevosTermDiccGlobalTemp[idLamina].remove(termino); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Exito! El trmino fue rechazado, por lo tanto se eliminar del diccionario de trminos.", " ")); // adminTerminos.serializarTerminos(diccionario); } public void guardarCambiosDiccionario() throws IOException { adminTerminos.serializarTerminos(diccionarioTemp); //esta contiene los cambios locales hechos en la lista temp serializarListaTemp(); } public void removeNuevosTermAsoc(TerminoLamina termino, int idLamina) { if (listNuevosTermAsocDiccGlobalTemp[idLamina].size() == 1) { listNuevosTermAsocDiccGlobalTemp[idLamina].clear(); } else { try { //System.out.println(" se quiere eliminar de la lista de terminos "); //System.out.println("termino "+termino.getTermino()); //System.out.println("id de la lamina" + idLamina); //hay que borrar tambien los terminos del tesauro listNuevosTermAsocDiccGlobalTemp[idLamina].remove(termino); System.out.println("se elimin el trmino"); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Exito! El trmino Aceptado", "El trmino fue Aceptado ")); } catch (Exception e) { e.printStackTrace(); } } } public void unirListas() throws IOException, FileNotFoundException, ClassNotFoundException { System.out.println(" ingresando unir listas"); ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String pathTermNuevos = (String) servletContext.getRealPath("/") + "/Terminos/NuevosTermDiccGlobal.obj"; String pathTermNuevosAsoc = (String) servletContext.getRealPath("/") + "/Terminos/NuevosTermAsocDiccGlobal.obj"; File f = new File(pathTermNuevos); File e = new File(pathTermNuevosAsoc); // if(f.exists() && !f.isDirectory()) { if (f.exists() && e.exists()) { System.out.println(" la lista de cambios ya existe por lo que se deserializarn"); listNuevosTermAsocDiccGlobal = deserializarNuevosTermAsocDiccGlobal(); listNuevosTermDiccGlobal = deserializarlistNuevosTermDiccGlobal(); } List<TerminoLamina>[] terminosTempGlobal = new ArrayList[10]; System.out.println("comenzando union de listas asoc"); for (int i = 0; i < 10; i++) { System.out.println("union " + i); List<TerminoLamina> terminosTemp = ListUtils.union(listNuevosTermAsocDicc[i], listNuevosTermAsocDiccGlobal[i]); terminosTempGlobal[i] = terminosTemp; } System.out.println("comenzando union de listas nuevos terminos"); List<TerminoLamina>[] terminosTempGlobal2 = new ArrayList[10]; for (int i = 0; i < 10; i++) { System.out.println("union " + i); List<TerminoLamina> terminosTemp2 = ListUtils.union(listNuevosTermDicc[i], listNuevosTermDiccGlobal[i]); terminosTempGlobal2[i] = terminosTemp2; } listNuevosTermAsocDiccGlobal = terminosTempGlobal; listNuevosTermDiccGlobal = terminosTempGlobal2; //serializamos los cambios en las listas del diccionario serializarListasCambiosDiccionario(); System.out.println(" se serializaron las listas globales de cambios en diccionario"); } public List<Termino>[] getListEliminTest() { return listEliminTest; } public void setListEliminTest(List<Termino>[] listEliminTest) { if (listEliminTest == null) { listEliminTest = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (listEliminTest[i] == null) { listEliminTest[i] = new ArrayList<>(); } } } this.listEliminTest = listEliminTest; } public List<Termino>[] getListModifTest() { return listModifTest; } public void setListModifTest(List<Termino>[] listModifTest) { this.listModifTest = listModifTest; } public List<Termino> TermElimID(int idLamina) { return listEliminTest[idLamina]; } public List<TerminoLamina>[] getListNuevosTermAsocDicc() { return listNuevosTermAsocDicc; } public void setListNuevosTermAsocDicc(List<TerminoLamina>[] listNuevosTermAsocDicc) { this.listNuevosTermAsocDicc = listNuevosTermAsocDicc; } public List<TerminoLamina>[] getListNuevosTermDicc() { return listNuevosTermDicc; } public void setListNuevosTermDicc(List<TerminoLamina>[] listNuevosTermDicc) { this.listNuevosTermDicc = listNuevosTermDicc; } public List<TerminoLamina>[] getListNuevosTermAsocDiccGlobal() { return listNuevosTermAsocDiccGlobal; } public void setListNuevosTermAsocDiccGlobal(List<TerminoLamina>[] listNuevosTermAsocDiccGlobal) { if (listNuevosTermAsocDiccGlobal == null) { this.listNuevosTermAsocDiccGlobal = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (this.listNuevosTermAsocDiccGlobal[i] == null) { this.listNuevosTermAsocDiccGlobal[i] = new ArrayList<>(); } } } this.listNuevosTermAsocDiccGlobal = listNuevosTermAsocDiccGlobal; } public List<TerminoLamina>[] getListNuevosTermDiccGlobal() throws IOException, FileNotFoundException, ClassNotFoundException { return listNuevosTermDiccGlobal; } public void setListNuevosTermDiccGlobal(List<TerminoLamina>[] listNuevosTermDiccGlobal) { if (listNuevosTermDiccGlobal == null) { this.listNuevosTermDiccGlobal = new ArrayList[10]; for (int i = 0; i < 10; i++) { if (this.listNuevosTermDiccGlobal[i] == null) { this.listNuevosTermDiccGlobal[i] = new ArrayList<>(); } } } this.listNuevosTermDiccGlobal = listNuevosTermDiccGlobal; } public void serializarListasCambiosDiccionario() throws FileNotFoundException, IOException { System.out.println(" entrando a serializar listas cambios diccionario"); //serializacin ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String realPath = (String) servletContext.getRealPath("/"); // Sustituye "/" por el directorio ej: "/upload" //serializacin try (ObjectOutputStream salida = new ObjectOutputStream( new FileOutputStream(realPath + "/Terminos/NuevosTermAsocDiccGlobal.obj"))) { salida.writeObject(listNuevosTermAsocDiccGlobal); // RecuperacionInformacion.setListaTerminosLaminas2(term); System.out.println(" se serializ lista de nuevos terminos asoc Global"); } try (ObjectOutputStream salida = new ObjectOutputStream( new FileOutputStream(realPath + "/Terminos/NuevosTermDiccGlobal.obj"))) { salida.writeObject(listNuevosTermDiccGlobal); // RecuperacionInformacion.setListaTerminosLaminas2(term); System.out.println(" se serializ nuevos terminos global dicc"); } System.out.println(" saliendo serializar listas cambios diccionario"); } public void serializarListaTemp() throws FileNotFoundException, IOException { System.out.println(" entrando a serializar listas cambios diccionario"); //serializacin ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String realPath = (String) servletContext.getRealPath("/"); // Sustituye "/" por el directorio ej: "/upload" //serializacin try (ObjectOutputStream salida = new ObjectOutputStream( new FileOutputStream(realPath + "/Terminos/NuevosTermAsocDiccGlobal.obj"))) { salida.writeObject(listNuevosTermAsocDiccGlobalTemp); // RecuperacionInformacion.setListaTerminosLaminas2(term); System.out.println(" se serializ lista de nuevos terminos asoc Global"); } try (ObjectOutputStream salida = new ObjectOutputStream( new FileOutputStream(realPath + "/Terminos/NuevosTermDiccGlobal.obj"))) { salida.writeObject(listNuevosTermDiccGlobalTemp); // RecuperacionInformacion.setListaTerminosLaminas2(term); System.out.println(" se serializ nuevos terminos global dicc"); } System.out.println(" saliendo serializar listas cambios diccionario"); } public List<TerminoLamina>[] deserializarNuevosTermAsocDiccGlobal() throws FileNotFoundException, IOException, ClassNotFoundException { List<TerminoLamina>[] term; ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String realPath = (String) servletContext.getRealPath("/"); // Sustituye "/" por el directorio ej: "/upload" //recuperar los terminos // setearle el rut del examinado para obtenerlo ObjectInputStream entrada = new ObjectInputStream( new FileInputStream(realPath + "/Terminos/NuevosTermAsocDiccGlobal.obj")); term = (List<TerminoLamina>[]) entrada.readObject(); return term; } public List<TerminoLamina>[] deserializarlistNuevosTermDiccGlobal() throws FileNotFoundException, IOException, ClassNotFoundException { List<TerminoLamina>[] term; ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext() .getContext(); String realPath = (String) servletContext.getRealPath("/"); // Sustituye "/" por el directorio ej: "/upload" //recuperar los terminos // setearle el rut del examinado para obtenerlo ObjectInputStream entrada = new ObjectInputStream( new FileInputStream(realPath + "/Terminos/NuevosTermDiccGlobal.obj")); term = (List<TerminoLamina>[]) entrada.readObject(); return term; } public List<TerminoLamina>[] getListNuevosTermAsocDiccGlobalTemp() throws IOException, FileNotFoundException, ClassNotFoundException { if (listNuevosTermAsocDiccGlobalTemp == null) // terminosTest=deserializarTerminosTest(); listNuevosTermAsocDiccGlobalTemp = deserializarNuevosTermAsocDiccGlobal(); return listNuevosTermAsocDiccGlobalTemp; } public void setListNuevosTermAsocDiccGlobalTemp(List<TerminoLamina>[] listNuevosTermAsocDiccGlobalTemp) { this.listNuevosTermAsocDiccGlobalTemp = listNuevosTermAsocDiccGlobalTemp; } // public List<TerminoLamina>[] getListNuevosTermDiccGlobalTemp() { // return listNuevosTermDiccGlobalTemp; // } public List<TerminoLamina>[] getListNuevosTermDiccGlobalTemp() throws IOException, FileNotFoundException, ClassNotFoundException { if (listNuevosTermDiccGlobalTemp == null) // terminosTest=deserializarTerminosTest(); listNuevosTermDiccGlobalTemp = deserializarlistNuevosTermDiccGlobal(); return listNuevosTermDiccGlobalTemp; } public void setListNuevosTermDiccGlobalTemp(List<TerminoLamina>[] listNuevosTermDiccGlobalTemp) { this.listNuevosTermDiccGlobalTemp = listNuevosTermDiccGlobalTemp; } public AdminTerminosBean getAdminTerminos() { return adminTerminos; } public void setAdminTerminos(AdminTerminosBean adminTerminos) { this.adminTerminos = adminTerminos; } public List<TerminoLamina>[] getDiccionarioTemp() { return diccionarioTemp; } public void setDiccionarioTemp(List<TerminoLamina>[] diccionarioTemp) { this.diccionarioTemp = diccionarioTemp; } }