List of usage examples for org.apache.commons.validator ValidatorException ValidatorException
public ValidatorException(String message)
From source file:es.pode.administracion.presentacion.planificador.modificarTarea.ObtenerTareaControllerImpl.java
/** * Metodo que guarda los cambios que se han echo en la tarea informeFechaUsuario *///from www . j a v a 2s. co m public void modificarTareaInformeFechaUsuario(org.apache.struts.action.ActionMapping mapping, es.pode.administracion.presentacion.planificador.modificarTarea.ModificarTareaInformeFechaUsuarioForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception { if (tz == null) tz = utilidades.asignarZonaHoraria(); TrabajoVO trabajo = new TrabajoVO(); // Trabajo a modificar TareaInformesVO datosTarea = new TareaInformesVO(); // Datos a modificar String dia = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getDia()); String mes = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMes()); String anio = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getAnio()); String hora = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getHora()); String minutos = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMinutos()); try { if (((FormularioInformeFechaRangoIIAceptarFormImpl) form).getPeriodicidad().equalsIgnoreCase("N")) { String anioDesde = new String( ((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getAnioDesde()); String mesDesde = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMesDesde()); String diaDesde = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getDiaDesde()); String anioHasta = new String( ((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getAnioHasta()); String mesHasta = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMesHasta()); String diaHasta = new String(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getDiaHasta()); //Comprobamos que todos los campos de la fecha de inicio estn rellenos if (anioDesde.equalsIgnoreCase("") || mesDesde.equalsIgnoreCase("") || diaDesde.equalsIgnoreCase("")) throw new ValidatorException("{informes.crearInformes.fechaDesdeCampoVacio}"); //Comprobamos que todos los campos de la fecha fin estn rellenos if (anioHasta.equalsIgnoreCase("") || mesHasta.equalsIgnoreCase("") || diaHasta.equalsIgnoreCase("")) throw new ValidatorException("{informes.crearInformes.fechaHastaCampoVacio}"); //Comprobamos que los campos de las fechas son numeros if (log.isDebugEnabled()) log.debug("comprobamos si las fechas tiene caracteres no numericos"); try { new Integer(anioDesde).intValue(); new Integer(mesDesde).intValue(); new Integer(diaDesde).intValue(); } catch (Exception e) { log.error("Alguno de los campos de la fecha desde no son nmeros"); throw new ValidatorException("{tareas.eliminarOdes.fechaDesde}"); } try { new Integer(anioHasta).intValue(); new Integer(mesHasta).intValue(); new Integer(diaHasta).intValue(); } catch (Exception e) { log.error("Alguno de los campos de la fecha hasta no son nmeros"); throw new ValidatorException("{tareas.eliminarOdes.fechaHasta}"); } // Comprobamos si las fechas introducidas son correctas boolean fechaValidaDesde = utilidades.validacionFechaDDMMAAAAHHMM(diaDesde, mesDesde, anioDesde, "yyyyMMdd"); boolean fechaValidaHasta = utilidades.validacionFechaDDMMAAAAHHMM(diaHasta, mesHasta, anioHasta, "yyyyMMdd"); boolean comparacionFechaDesdeHasta = utilidades.comparacionFechas(anioDesde, mesDesde, diaDesde, anioHasta, mesHasta, diaHasta); if (!fechaValidaHasta && !fechaValidaDesde) throw new ValidatorException("{tareas.fechaDesdeHastaIncorrecta}"); if (!fechaValidaDesde) throw new ValidatorException("{tareas.fechaDesdeIncorrecta}"); if (!fechaValidaHasta) throw new ValidatorException("{tareas.fechaHastaIncorrecta}"); if (!comparacionFechaDesdeHasta) throw new ValidatorException("{tareas.fechaDesdeMasQueHasta}"); Calendar calFechaDesde = Calendar.getInstance(tz); calFechaDesde = new GregorianCalendar(new Integer(anioDesde).intValue(), new Integer(mesDesde).intValue() - 1, new Integer(diaDesde).intValue(), 0, 1); Calendar calFechaHasta = Calendar.getInstance(tz); calFechaHasta = new GregorianCalendar(new Integer(anioHasta).intValue(), new Integer(mesHasta).intValue() - 1, new Integer(diaHasta).intValue(), 23, 59); datosTarea.setFechaDesde(calFechaDesde); datosTarea.setFechaHasta(calFechaHasta); } else { if (log.isDebugEnabled()) log.debug("es periodica"); } try { trabajo.setTrabajo(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getTrabajo()); trabajo.setGrupoTrabajo(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getGrupoTrabajo()); datosTarea.setTrabajo(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getTrabajo()); datosTarea .setGrupoTrabajo(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getGrupoTrabajo()); datosTarea.setTrigger(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getTrigger()); datosTarea .setGrupoTrigger(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getGrupoTrigger()); datosTarea .setPeriodicidad(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getPeriodicidad()); datosTarea.setFormato(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getFormato()); datosTarea.setUsuarioInforme(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getUsuario()); datosTarea.setInforme(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getInforme()); datosTarea.setMsgInforme(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMsgInforme()); datosTarea .setMsgNoInforme(((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMsgNoInforme()); datosTarea.setMsgDescripcionTrabajo( ((FormularioInformeFechaUsuarioIIAceptarFormImpl) form).getMsgDescTrabajo()); Calendar cal = Calendar.getInstance(tz); cal = new GregorianCalendar(new Integer(anio).intValue(), new Integer(mes).intValue() - 1, new Integer(dia).intValue(), new Integer(hora).intValue(), new Integer(minutos).intValue()); datosTarea.setFechaInicio(cal); datosTarea.setUsuario(LdapUserDetailsUtils.getUsuario()); TareaInformesVO tareaRecuperada = this.getSrvPlanificadorService() .modificarTareaInformes(datosTarea, trabajo); form.setTareaModificada(tareaRecuperada.getTrabajo()); } catch (Exception e) { log.error("se produce un error " + e); throw new ValidatorException("{tareas.error}"); } } catch (ValidatorException ve) { log.error("error " + ve); throw ve; } catch (Exception e) { log.error("Error: " + e); //throw new ValidatorException("{tareas.error}"); } }
From source file:es.pode.administracion.presentacion.planificador.modificarTarea.ObtenerTareaControllerImpl.java
/** * Metodo que modifica la tarea de informes Federados con los nuevos datos *//*from w ww. ja v a2s . com*/ public void modificarTareaInformeFederado(org.apache.struts.action.ActionMapping mapping, es.pode.administracion.presentacion.planificador.modificarTarea.ModificarTareaInformeFederadoForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception { if (tz == null) tz = utilidades.asignarZonaHoraria(); String dia = new String(((FormularioInformeFederadoIIAceptarFormImpl) form).getDia()); String mes = new String(((FormularioInformeFederadoIIAceptarFormImpl) form).getMes()); String anio = new String(((FormularioInformeFederadoIIAceptarFormImpl) form).getAnio()); String hora = new String(((FormularioInformeFederadoIIAceptarFormImpl) form).getHora()); String minutos = new String(((FormularioInformeFederadoIIAceptarFormImpl) form).getMinutos()); TrabajoVO trabajo = new TrabajoVO(); // Trabajo a modificar TareaInformesVO datosTarea = new TareaInformesVO(); // Datos a modificar try { trabajo.setTrabajo(((FormularioInformeFederadoIIAceptarFormImpl) form).getTrabajo()); trabajo.setGrupoTrabajo(((FormularioInformeFederadoIIAceptarFormImpl) form).getGrupoTrabajo()); datosTarea.setTrabajo(((FormularioInformeFederadoIIAceptarFormImpl) form).getTrabajo()); datosTarea.setGrupoTrabajo(((FormularioInformeFederadoIIAceptarFormImpl) form).getGrupoTrabajo()); datosTarea.setTrigger(((FormularioInformeFederadoIIAceptarFormImpl) form).getTrigger()); datosTarea.setGrupoTrigger(((FormularioInformeFederadoIIAceptarFormImpl) form).getGrupoTrigger()); datosTarea.setPeriodicidad(((FormularioInformeFederadoIIAceptarFormImpl) form).getPeriodicidad()); datosTarea.setFormato(((FormularioInformeFederadoIIAceptarFormImpl) form).getFormato()); datosTarea.setInforme(((FormularioInformeFederadoIIAceptarFormImpl) form).getInforme()); datosTarea.setMsgInforme(((FormularioInformeFederadoIIAceptarFormImpl) form).getMsgInforme()); datosTarea.setMsgNoInforme(((FormularioInformeFederadoIIAceptarFormImpl) form).getMsgNoInforme()); datosTarea.setMsgDescripcionTrabajo( ((FormularioInformeFederadoIIAceptarFormImpl) form).getMsgDescTrabajo()); Calendar cal = Calendar.getInstance(tz); cal = new GregorianCalendar(new Integer(anio).intValue(), new Integer(mes).intValue() - 1, new Integer(dia).intValue(), new Integer(hora).intValue(), new Integer(minutos).intValue()); datosTarea.setFechaInicio(cal); datosTarea.setUsuario(LdapUserDetailsUtils.getUsuario()); TareaInformesVO tareaRecuperada = this.getSrvPlanificadorService() .modificarTareaInformesFederado(datosTarea, trabajo); form.setTareaModificada(tareaRecuperada.getTrabajo()); } catch (Exception e) { log.error("Error: " + e); throw new ValidatorException("{tareas.error}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.DetalleClasificacionControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.DetalleClasificacionController#cargarTaxones(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.CargarTaxonesForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */// w w w. java 2 s. co m public final void cargarTaxones(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.CargarTaxonesForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { InputStream is = null; Properties prop = new Properties(); Object valor = request.getSession().getAttribute("form"); boolean nocargaTax = true; boolean hayTaxones = false; String source = ""; String idioma = ""; String url = ""; AvClassificationVO clasificacionAux = null; SourceValueVO sourceVO = null; CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); String vocabName = null; try { is = this.getClass().getResourceAsStream("/catalogadorAvanzado.properties"); prop.load(is); if (valor instanceof DetalleClasificacionFormImpl) { form.setComboIdiomaLabelList(((DetalleClasificacionFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList(((DetalleClasificacionFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((DetalleClasificacionFormImpl) valor).getDescripciones()); form.setPalabrasClave(((DetalleClasificacionFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((DetalleClasificacionFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((DetalleClasificacionFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((DetalleClasificacionFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((DetalleClasificacionFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((DetalleClasificacionFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((DetalleClasificacionFormImpl) valor).getSourceLabelList()); } else if (valor instanceof DetalleClasificacionSubmitFormImpl) { form.setComboIdiomaLabelList( ((DetalleClasificacionSubmitFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList( ((DetalleClasificacionSubmitFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((DetalleClasificacionSubmitFormImpl) valor).getDescripciones()); form.setPalabrasClave(((DetalleClasificacionSubmitFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((DetalleClasificacionSubmitFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((DetalleClasificacionSubmitFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((DetalleClasificacionSubmitFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((DetalleClasificacionSubmitFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((DetalleClasificacionSubmitFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((DetalleClasificacionSubmitFormImpl) valor).getSourceLabelList()); } else if (valor instanceof ClasificacionNoValidaVolverFormImpl) { form.setComboIdiomaLabelList( ((ClasificacionNoValidaVolverFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList( ((ClasificacionNoValidaVolverFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((ClasificacionNoValidaVolverFormImpl) valor).getDescripciones()); form.setPalabrasClave(((ClasificacionNoValidaVolverFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((ClasificacionNoValidaVolverFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((ClasificacionNoValidaVolverFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((ClasificacionNoValidaVolverFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((ClasificacionNoValidaVolverFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((ClasificacionNoValidaVolverFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((ClasificacionNoValidaVolverFormImpl) valor).getSourceLabelList()); } else if (valor instanceof ClasificacionValidaVolverFormImpl) { form.setComboIdiomaLabelList(((ClasificacionValidaVolverFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList(((ClasificacionValidaVolverFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((ClasificacionValidaVolverFormImpl) valor).getDescripciones()); form.setPalabrasClave(((ClasificacionValidaVolverFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((ClasificacionValidaVolverFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((ClasificacionValidaVolverFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((ClasificacionValidaVolverFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((ClasificacionValidaVolverFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((ClasificacionValidaVolverFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((ClasificacionValidaVolverFormImpl) valor).getSourceLabelList()); } else if ((valor instanceof TaxonomiasFormImpl) || (valor instanceof TesaurosFormImpl)) { //Tenemos que volver a cargar todo el formulario // llenar combos is = this.getClass().getResourceAsStream("/catalogadorAvanzado.properties"); prop.load(is); //String idiomaLocale=((Locale)request.getSession().getAttribute("org.apache.struts.action.LOCALE")).getLanguage(); ResourceBundle datosResources = I18n.getInstance().getResource("application-resources", (Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)); String idiomaLdap = ((Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE")) .getLanguage(); String[] l_id = { prop.getProperty("idiomaDestinatario"), prop.getProperty("proposito") }; VocabularioVO[] vocaCombos = this.getSrvVocabulariosControladosService().obtenerCombos(l_id, idiomaLdap); if ((vocaCombos != null) && (vocaCombos.length > 0)) { // Rellenamos combos for (int ic = 0; ic < vocaCombos.length; ic++) { if (vocaCombos[ic].getIdVocabulario().equals(prop.getProperty("proposito"))) { // 1.- Combo de Razon-Purpose 9.1 TerminoVO[] terminosDest = vocaCombos[ic].getTerminos(); // crear el ordena en un fichero de utilidades TerminoVO[] terminosOrdDest = ordena(terminosDest, idiomaLdap); TerminoVO termVacio = new TerminoVO(); termVacio.setIdiomaTermino(""); termVacio.setIdTermino(""); termVacio.setNomTermino(""); Collection idDest2 = Arrays.asList(terminosDest); Collection idDest = new ArrayList(); idDest.add(termVacio); //Metemos el vacio para que nos salga en el combo "" Iterator zDest = idDest2.iterator(); while (zDest.hasNext()) { idDest.add(zDest.next()); } form.setRazonBackingList(idDest, "idTermino", "nomTermino"); } else if (vocaCombos[ic].getIdVocabulario() .equals(prop.getProperty("idiomaDestinatario"))) { // 2.- Combo de idiomas sin none language 5.11 TerminoVO[] terminosDest = vocaCombos[ic].getTerminos(); for (int li = 0; li < terminosDest.length; li++) { TerminoVO idAux = new TerminoVO(); idAux = terminosDest[li]; String textoIdioma = idAux.getNomTermino(); String idiomasTra = I18n.getInstance().obtenerIdiomaTraducido(textoIdioma, idiomaLdap); idAux.setNomTermino(idiomasTra); } // crear el ordena en un fichero de utilidades TerminoVO[] terminosOrdDest = ordena(terminosDest, idiomaLdap); TerminoVO termVacio = new TerminoVO(); termVacio.setIdiomaTermino(""); termVacio.setIdTermino(""); termVacio.setNomTermino(""); Collection idDest2 = Arrays.asList(terminosDest); Collection idDest = new ArrayList(); idDest.add(termVacio); //Metemos el vacio para que nos salga en el combo "" Iterator zDest = idDest2.iterator(); while (zDest.hasNext()) { idDest.add(zDest.next()); } form.setComboIdiomaBackingList(idDest, "idTermino", "nomTermino"); } //fin if } //fin for } //fin vocaCombos //3.- Combo de Source--> generado por nosotros //metodo de prueba Collection terms = new ArrayList(); String[] rutaBus = prop.getProperty("rutaSource").split(","); for (int i = 0; i < rutaBus.length; i++) { File dirBus = new File(rutaBus[i]); recogeRutasDir(dirBus, idiomaLdap, terms); } TerminoVO termVacio = new TerminoVO(); termVacio.setIdiomaTermino(""); termVacio.setIdTermino(""); termVacio.setNomTermino(""); Collection idDest2 = terms; Collection termsWVacio = new ArrayList(); termsWVacio.add(termVacio); //Metemos el vacio para que nos salga en el combo "" Iterator zDest = idDest2.iterator(); while (zDest.hasNext()) { termsWVacio.add(zDest.next()); } //en terms tenemos un Array de TerminoVO form.setSourceBackingList(termsWVacio, "idTermino", "nomTermino"); /////////////////// FIN RECOGIDA COMBOS /////////////////// AvClassificationVO clVal = null; if (catalogadorAvSession.getClasificacionAux() != null) clVal = catalogadorAvSession.getClasificacionAux(); if (clVal != null) { razon = clVal.getProposito().getValor() != null ? clVal.getProposito().getValor() : ""; descripcion = clVal.getDescripcion(); rutasTaxonomicas = clVal.getRutasTaxonomicas(); palabrasClave = clVal.getPalabrasClave(); } form.setRazon(razon); form.setRutaTaxonomicaAsArray(rutasTaxonomicas); form.setDescripcionesAsArray(descripcion.getTextos()); form.setPalabrasClaveAsArray(palabrasClave); } int longitudTextosDesc = form.getDescripciones() != null ? form.getDescripciones().size() : 0; int longiP = form.getPalabrasClave() != null ? form.getPalabrasClave().size() : 0; int[] longitudTextosPCla = new int[longiP]; for (int i = 0; i < longiP; i++) { longitudTextosPCla[i] = ((PalabraClaveVO) (form.getPalabrasClaveAsArray()[i])).getTextos().length; } int longitudPalabrasClave = longiP; int longitudRutaTaxonomica = form.getRutaTaxonomica() != null ? form.getRutaTaxonomica().size() : 0; int[] longiTextosFuente = new int[longitudRutaTaxonomica]; int[] longiTaxones = new int[longitudRutaTaxonomica]; if (form.getRutaTaxonomica() != null) { for (int i = 0; i < longitudRutaTaxonomica; i++) { longiTextosFuente[i] = ((RutaTaxonomicaVO) (form.getRutaTaxonomicaAsArray()[i])).getFuente() .getTextos().length; longiTaxones[i] = ((RutaTaxonomicaVO) (form.getRutaTaxonomicaAsArray()[i])).getTaxones().length; } } cambioFormulario(request, longitudTextosDesc, longitudTextosPCla, longitudPalabrasClave, longitudRutaTaxonomica, longiTextosFuente, longiTaxones, null); //Actualizamos los valores del formulario form.setPalabrasClaveAsArray(palabrasClave); form.setRazon(razon); form.setRutaTaxonomicaAsArray(rutasTaxonomicas); form.setDescripcionesAsArray(descripcion.getTextos()); //y lo metemos en la sesion!!!! if (catalogadorAvSession != null) { clasificacionAux = new AvClassificationVO(); sourceVO = new SourceValueVO(); //dameTerminoId(catalogadorAvSession.getIdioma()); sourceVO.setSource(AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos")); //source sourceVO.setValor(razon); clasificacionAux.setProposito(sourceVO); clasificacionAux.setRutasTaxonomicas(rutasTaxonomicas); clasificacionAux.setDescripcion(descripcion); clasificacionAux.setPalabrasClave(palabrasClave); catalogadorAvSession.setClasificacionAux(clasificacionAux);//metidos los datos catalogadorAvSession.setTituloCategoria(form.getTituloClasificacion()); } /////////// //UNA VEZ METIDOS LOS DATOS EN SESION, PARA QUE SI HAY ALGUN PROBLEMA SE QUEDE REFLEJADO EN EL FORMULARIO //ACTUALIZAMOS EL OBJETO VALOR if (valor instanceof DetalleClasificacionFormImpl) { DetalleClasificacionFormImpl formulario = (DetalleClasificacionFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); if (rutasTaxonomicas != null && rutasTaxonomicas.length > 0 && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente() != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto() != null && !rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0].getTexto() .equals("")) { String nomFicheroTax = rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto(); //obtenemos el vocabName de combo boolean encontrado = false; for (int i = 1; i < form.getSourceBackingList().length && !encontrado; i++) { if (nomFicheroTax.equals(form.getSourceValueList()[i].toString())) { vocabName = form.getSourceLabelList()[i].toString(); encontrado = true; } } } formulario.setVocabName(vocabName); } else if (valor instanceof DetalleClasificacionSubmitFormImpl) { DetalleClasificacionSubmitFormImpl formulario = (DetalleClasificacionSubmitFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); if (rutasTaxonomicas != null && rutasTaxonomicas.length > 0 && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente() != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto() != null && !rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0].getTexto() .equals("")) { String nomFicheroTax = rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto(); //obtenemos el vocabName de combo boolean encontrado = false; for (int i = 1; i < form.getSourceBackingList().length && !encontrado; i++) { if (nomFicheroTax.equals(form.getSourceValueList()[i].toString())) { vocabName = form.getSourceLabelList()[i].toString(); encontrado = true; } } } formulario.setVocabName(vocabName); } else if (valor instanceof ClasificacionNoValidaVolverFormImpl) { ClasificacionNoValidaVolverFormImpl formulario = (ClasificacionNoValidaVolverFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); if (rutasTaxonomicas != null && rutasTaxonomicas.length > 0 && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente() != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto() != null && !rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0].getTexto() .equals("")) { String nomFicheroTax = rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto(); //obtenemos el vocabName de combo boolean encontrado = false; for (int i = 1; i < form.getSourceBackingList().length && !encontrado; i++) { if (nomFicheroTax.equals(form.getSourceValueList()[i].toString())) { vocabName = form.getSourceLabelList()[i].toString(); encontrado = true; } } } formulario.setVocabName(vocabName); } else if (valor instanceof ClasificacionValidaVolverFormImpl) { ClasificacionValidaVolverFormImpl formulario = (ClasificacionValidaVolverFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); if (rutasTaxonomicas != null && rutasTaxonomicas.length > 0 && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente() != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] != null && rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto() != null && !rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0].getTexto() .equals("")) { String nomFicheroTax = rutasTaxonomicas[rutasTaxonomicas.length - 1].getFuente().getTextos()[0] .getTexto(); //obtenemos el vocabName de combo boolean encontrado = false; for (int i = 1; i < form.getSourceBackingList().length && !encontrado; i++) { if (nomFicheroTax.equals(form.getSourceValueList()[i].toString())) { vocabName = form.getSourceLabelList()[i].toString(); encontrado = true; } } } formulario.setVocabName(vocabName); } //posicion que hemos pulsado String posicion = request.getAttribute("posicion").toString(); int posDesc = Integer.parseInt(posicion); if (rutasTaxonomicas != null) { int lengRutas = rutasTaxonomicas.length; if (posDesc <= lengRutas) { source = rutasTaxonomicas[posDesc].getFuente().getTextos()[0].getTexto(); idioma = rutasTaxonomicas[posDesc].getFuente().getTextos()[0].getIdioma();//hay q traducir 1.3.3 por es ejm TaxonVO[] tax = rutasTaxonomicas[posDesc].getTaxones(); String idTex = ""; String entryTex = ""; if (!source.equals("") && !idioma.equals("")) { if ((tax != null) && (tax.length > 0)) { idTex = tax[0].getId().getTexto(); LangStringVO[] lanstex = tax[0].getEntry().getTextos(); if ((lanstex != null) && (lanstex.length > 0)) { entryTex = lanstex[0].getTexto(); if ((idTex.equals("")) && (entryTex.equals(""))) { hayTaxones = true; } else hayTaxones = false; } } } else { nocargaTax = false; } } } } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new java.lang.Exception("detalle.clasificacion", ad); } catch (Exception e) { logger.error("Error en Servicio de catalogacion avanzado, metodo cargarTaxones " + e); throw new java.lang.Exception("detalle.clasificacion", e); } if ((nocargaTax) && (hayTaxones)) { boolean idiomaTesExiste = true; try { String nombreTax = ""; String taxOTex = ""; if ((source != null) && (!source.equals("") && (source.endsWith("_TAX") || (source.endsWith("_TES"))))) { nombreTax = source.substring(0, source.length() - 4); if (idioma != null && !idioma.equals("")) { String[] datoIdiomaRuta = { idioma }; TerminoYPadreVO[] terminosTraducPCla = this.getSrvVocabulariosControladosService() .crearTraduccionAIngles(datoIdiomaRuta); idioma = terminosTraducPCla[0].getNomTermino(); if (source.endsWith("TAX")) { taxOTex = "/catalogadorWeb/Taxonomias/Taxonomias.do?nomTaxonomia=" + nombreTax + "&idioma=" + idioma + "&vocabName=" + vocabName; } else if (source.endsWith("TES")) { idiomaTesExiste = this.getSrvTesaurosServices().chequearExistenciaIdioma(idioma); if (idiomaTesExiste) { taxOTex = "/catalogadorWeb/Tesauros/Tesauros.do?nomTesauro=" + nombreTax + "&idioma=" + idioma + "&vocabName=" + vocabName; } } } else { if (source.endsWith("TAX")) { taxOTex = "/catalogadorWeb/Taxonomias/Taxonomias.do?nomTaxonomia=" + nombreTax + "&idioma=" + catalogadorAvSession.getIdioma() + "&vocabName=" + vocabName; } else if (source.endsWith("TES")) { taxOTex = "/catalogadorWeb/Tesauros/Tesauros.do?nomTesauro=" + nombreTax + "&idioma=" + catalogadorAvSession.getIdioma() + "&vocabName=" + vocabName; } } if (idiomaTesExiste) { url = HTTP + LdapUserDetailsUtils.getHost() + LdapUserDetailsUtils.getSubdominio() + taxOTex; response.sendRedirect(url); } } } catch (Exception e) { logger.error("Error en Servicio de catalogacion avanzado, metodo cargarTaxones " + e); throw new java.lang.Exception("detalle.clasificacion", e); } if (!idiomaTesExiste) throw new ValidatorException("{detalleclasi.error.tesauroSinIdioma}"); } else { if (hayTaxones) throw new ValidatorException("{detalleclasi.error.hayTaxones}"); else throw new ValidatorException("{detalleclasi.error.yaDatos}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.ciclodevida.CiclodevidaControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.ciclodevida.CiclodevidaController#guardarCicloVida(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.ciclodevida.GuardarCicloVidaForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) *///from w w w. j a v a2s. com public final void guardarCicloVida(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.ciclodevida.GuardarCicloVidaForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorFechaObli = false; boolean errorFechaObliHorMin = false; boolean errorFechaZonaHoraria = false; boolean errorFechaComboZH = false; boolean errorEmail = false; boolean errorNoNumero = false; boolean errorFecha = false; boolean errorFormatoFecha = false; boolean errorZHFueraRango = false; boolean errorFechaFueraRango = false; VersionVO version = null; ContribucionVO[] contribucionesVO = null; SourceValueVO estatusSV = null; VersionVO versionVO = null; LomAvanzadoVO auxAvanzado = new LomAvanzadoVO(); CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); try { AvLifeCycleVO lifeCycle = new AvLifeCycleVO(); auxAvanzado.setLifeCycle(lifeCycle); String source = AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos"); String usuario = LdapUserDetailsUtils.getUsuario(); //String usuario="empaquetador"; String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(this.getCatalogadorAvSession(request).getIdioma()); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); // metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); Object valor = request.getSession().getAttribute("form"); //Obtenemos la longitudes de los VOs, que pasamos a cambioFormulario para que se obtengan del request los cambios que hemos hecho //Pues en el form que nos viene como parametro no los guarda. int longitudDescripciones = 0; int longitudVersiones = 0; int longitudContribuciones = 0; int[] longitudTextosDesc = new int[0]; int[] longitudEntidadesContrib = new int[0]; if (valor instanceof CicloDeVidaFormImpl) { CicloDeVidaFormImpl valorGen = ((CicloDeVidaFormImpl) valor); Object[] desc = valorGen.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorGen.getContribuciones().size()]; for (int i = 0; i < valorGen.getContribuciones().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorGen.getContribucionesAsArray()[i])) .getEntidades().length; } longitudContribuciones = valorGen.getContribuciones().size(); longitudDescripciones = desc.length; longitudVersiones = (((VersionVO[]) valorGen.getVersionesAsArray())[0]).getTextos().length; } else if (valor instanceof CicloFormAccionSubmitFormImpl) { CicloFormAccionSubmitFormImpl valorGen = ((CicloFormAccionSubmitFormImpl) valor); Object[] desc = valorGen.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorGen.getContribuciones().size()]; for (int i = 0; i < valorGen.getContribuciones().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorGen.getContribucionesAsArray()[i])) .getEntidades().length; } longitudContribuciones = valorGen.getContribuciones().size(); longitudDescripciones = desc.length; longitudVersiones = (((VersionVO[]) valorGen.getVersionesAsArray())[0]).getTextos().length; } else if (valor instanceof CicloNoValidoVolverFormImpl) { CicloNoValidoVolverFormImpl valorGen = ((CicloNoValidoVolverFormImpl) valor); Object[] desc = valorGen.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorGen.getContribuciones().size()]; for (int i = 0; i < valorGen.getContribuciones().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorGen.getContribucionesAsArray()[i])) .getEntidades().length; } longitudContribuciones = valorGen.getContribuciones().size(); longitudDescripciones = desc.length; longitudVersiones = (((VersionVO[]) valorGen.getVersionesAsArray())[0]).getTextos().length; } else if (valor instanceof CicloValidoVolverFormImpl) { CicloValidoVolverFormImpl valorGen = ((CicloValidoVolverFormImpl) valor); Object[] desc = valorGen.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorGen.getContribuciones().size()]; for (int i = 0; i < valorGen.getContribuciones().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorGen.getContribucionesAsArray()[i])) .getEntidades().length; } longitudContribuciones = valorGen.getContribuciones().size(); longitudDescripciones = desc.length; longitudVersiones = (((VersionVO[]) valorGen.getVersionesAsArray())[0]).getTextos().length; } //Recogemos los cambio del request mediante parametros cambioFormulario(request, longitudDescripciones, longitudVersiones, longitudContribuciones, longitudTextosDesc, longitudEntidadesContrib); //Guardamos los cambios en el form obtenido de request.getSession.getAttribute("form") para que en caso de faltar //algun idioma o texto sin rellenar cargue el formulario con lo cambio y no perdamos todo lo modificado hasta ese //momento, si no lo hicieramos cargara el formulario anterior. //VERSION VersionVO[] versionesAux = new VersionVO[1]; LangStringVO[] langVerAux = new LangStringVO[versiones[0].getTextos().length]; for (int i = 0; i < versiones[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(versiones[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(versiones[0].getTextos()[i].getTexto()); langVerAux[i] = nuevoLang; } VersionVO VerAux = new VersionVO(); VerAux.setTextos(langVerAux); versionesAux[0] = VerAux; //DESCRIPCIONES DescripcionVO[] descripcionesAux = new DescripcionVO[descripciones.length]; for (int i = 0; i < descripciones.length; i++) { DescripcionVO descripAux = new DescripcionVO(); LangStringVO[] langDescrip = descripciones[i].getTextos(); LangStringVO[] langDescripAux = new LangStringVO[langDescrip.length]; for (int j = 0; j < langDescrip.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langDescrip[j].getIdioma()); nuevoLang.setTexto(langDescrip[j].getTexto()); langDescripAux[j] = nuevoLang; } descripAux.setTextos(langDescripAux); descripcionesAux[i] = descripAux; } //CONTRIBUCIONES Contribucion[] contribucionesAux = new Contribucion[contribuciones.length]; for (int i = 0; i < contribuciones.length; i++) { Contribucion contribucionAux = new Contribucion(); //rol SourceValueVO rolAux = new SourceValueVO(); rolAux.setValor(contribuciones[i].getRol().getValor()); //entidad Entidad[] entidades = contribuciones[i].getEntidades(); Entidad[] entidadesAux = new Entidad[entidades.length]; for (int j = 0; j < entidadesAux.length; j++) { Entidad entidad = new Entidad(); entidad.setCorreo(entidades[j].getCorreo()); entidad.setNombre(entidades[j].getNombre()); entidad.setOrganizacion(entidades[j].getOrganizacion()); entidadesAux[j] = entidad; } //fecha Fecha fechaAux = contribuciones[i].getFecha(); //contribucion contribucionAux.setRol(rolAux); contribucionAux.setEntidades(entidadesAux); contribucionAux.setFecha(fechaAux); contribucionesAux[i] = contribucionAux; } if (valor instanceof CicloDeVidaFormImpl) { ((CicloDeVidaFormImpl) valor).setVersionesAsArray(versionesAux); ((CicloDeVidaFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((CicloDeVidaFormImpl) valor).setContribucionesAsArray(contribucionesAux); } else if (valor instanceof CicloFormAccionSubmitFormImpl) { ((CicloFormAccionSubmitFormImpl) valor).setVersionesAsArray(versionesAux); ((CicloFormAccionSubmitFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((CicloFormAccionSubmitFormImpl) valor).setContribucionesAsArray(contribucionesAux); } else if (valor instanceof CicloValidoVolverFormImpl) { ((CicloValidoVolverFormImpl) valor).setVersionesAsArray(versionesAux); ((CicloValidoVolverFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((CicloValidoVolverFormImpl) valor).setContribucionesAsArray(contribucionesAux); } else if (valor instanceof CicloNoValidoVolverFormImpl) { ((CicloNoValidoVolverFormImpl) valor).setVersionesAsArray(versionesAux); ((CicloNoValidoVolverFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((CicloNoValidoVolverFormImpl) valor).setContribucionesAsArray(contribucionesAux); } estatus = form.getEstatus(); //Obtnemos los terminos de los ids seleccionados en todos los combos, y los guarda en los VO dameTerminoId(); //Comprobamos si los campos ha sido rellenados adecuadamente //VERSIONES versionVO = new VersionVO(); if (versiones != null && versiones.length != 0) { version = (VersionVO) versiones[0]; LangStringVO[] textos = version.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lVer = (LangStringVO) textos[j]; if (lVer != null) { LangStringVO lLang = new LangStringVO(); String idioma = lVer.getIdioma(); String texto = lVer.getTexto(); if (((idioma != null) && (!idioma.trim().equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma.trim()); lLang.setTexto(texto.trim()); lista.add(lLang); } else { if (idioma.equals("") && !texto.trim().equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.trim().equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) versionVO = null; else versionVO.setTextos(lLangS); } else versionVO = null; auxAvanzado.getLifeCycle().setVersion(versionVO); //ESTATUS estatusSV = new SourceValueVO(); if ((estatus != null) && (!estatus.equals(""))) { estatusSV.setValor(estatus); estatusSV.setSource(source); } else { estatusSV = null; } auxAvanzado.getLifeCycle().setEstado(estatusSV); //CONTRIBUCIONES contribucionesVO = null; if (contribuciones != null && contribuciones.length != 0) { contribucionesVO = new ContribucionVO[contribuciones.length]; ArrayList listaContribuciones = new ArrayList(); for (int k = 0; k < contribuciones.length; k++) { ContribucionVO contribucionVO = new ContribucionVO(); //FECHA FechaVO fechaVO = new FechaVO(); //Descripciones /**********************************************/ if (descripciones != null && descripciones.length != 0) { if (descripciones[k] != null) { ArrayList listDesc = new ArrayList(); DescripcionVO lDesc = (DescripcionVO) (descripciones[k]); DescripcionVO lDescripciones = new DescripcionVO(); for (int j = 0; j < lDesc.getTextos().length; j++) { LangStringVO lang = lDesc.getTextos()[j]; LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto(); if (((idioma != null) && (!idioma.trim().equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma.trim()); lLang.setTexto(texto.trim()); listDesc.add(lLang); } else { if (idioma.equals("") && !texto.trim().equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.trim().equals("")) errorFaltaTexto = true; } } if (listDesc.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listDesc .toArray(new LangStringVO[listDesc.size()]); lDescripciones.setTextos(langs); fechaVO.setDescripcion(lDescripciones); } else {//meter una vacia??? fechaVO.setDescripcion(null); } } } /**********************************************/ //fecha /**********************************************/ // es obl al menos yyyy-MM-dd Fecha fechaAux = contribuciones[k].getFecha(); // fechaAux.setIdioma(idiomaLdap); Integer[] errores = fechaAux.validar(); if (errores.length > 0) { for (int i = 0; i < errores.length; i++) { if (errores[i].equals(Fecha.ErrorNoNumero) && !errorNoNumero) errorNoNumero = true; else if (errores[i].equals(Fecha.ErrorFechaFueraRango) && !errorFechaFueraRango) errorFechaFueraRango = true; else if (errores[i].equals(Fecha.ErrorZHFueraRango) && !errorZHFueraRango) errorZHFueraRango = true; else if (errores[i].equals(Fecha.ErrorFechaComboZH) && !errorFechaComboZH) errorFechaComboZH = true; else if (errores[i].equals(Fecha.ErrorFechaZonaHoraria) && !errorFechaZonaHoraria) errorFechaZonaHoraria = true; else if (errores[i].equals(Fecha.ErrorFechaObliHorMin) && !errorFechaObliHorMin) errorFechaObliHorMin = true; else if (errores[i].equals(Fecha.ErrorFechaObli) && !errorFechaObli) errorFechaObli = true; else if (errores[i].equals(Fecha.ErrorFormatoFecha) && !errorFormatoFecha) errorFormatoFecha = true; } } if (errores.length == 0) { fechaVO.setFecha(fechaAux.getFechaLomes()); } else { fechaVO.setFecha(null); } if (fechaVO.getDescripcion() == null && fechaVO.getFecha() == null) fechaVO = null; contribucionVO.setFecha(fechaVO); /**********************************************/ //rol /**********************************************/ SourceValueVO rolVO = new SourceValueVO(); String rol = contribuciones[k].getRol().getValor(); if ((rol != null) && (!rol.equals(""))) { rolVO.setSource(source); rolVO.setValor(rol); } else { rolVO = null; } contribucionVO.setTipo(rolVO); /**********************************************/ //entidad /**********************************************/ EntidadVO[] entidadesVO = null; Entidad[] entidades = contribuciones[k].getEntidades(); ArrayList listaEntidades = new ArrayList(); for (int i = 0; i < entidades.length; i++) { Entidad entidad = entidades[i]; EntidadVO entidadVO = new EntidadVO(); String textoEnt = ""; if (!entidad.getOrganizacion().trim().equals("") || !entidad.getCorreo().trim().equals("") || !entidad.getNombre().trim().equals("")) { if (!entidad.getCorreo().trim().equals("")) { if (validaEmail(entidad.getCorreo())) { textoEnt = new StringBuffer("BEGIN:VCARD VERSION:3.0 FN:") .append(entidad.getNombre().trim()).append(" EMAIL;TYPE=INTERNET:") .append(entidad.getCorreo().trim()).append(" ORG:") .append(entidad.getOrganizacion().trim()).append(" END:VCARD") .toString(); entidadVO.setTexto(textoEnt); listaEntidades.add(entidadVO); } else errorEmail = true; } else { textoEnt = new StringBuffer("BEGIN:VCARD VERSION:3.0 FN:") .append(entidad.getNombre().trim()).append(" EMAIL;TYPE=INTERNET:") .append(entidad.getCorreo().trim()).append(" ORG:") .append(entidad.getOrganizacion().trim()).append(" END:VCARD").toString(); entidadVO.setTexto(textoEnt); listaEntidades.add(entidadVO); } } } if (listaEntidades.size() == 0) entidadesVO = null; else entidadesVO = (EntidadVO[]) listaEntidades.toArray(new EntidadVO[listaEntidades.size()]); contribucionVO.setEntidades(entidadesVO); /**********************************************/ //aado contribucionVO si tiene algo if (contribucionVO.getEntidades() != null || contribucionVO.getFecha() != null || contribucionVO.getTipo() != null) listaContribuciones.add(contribucionVO); //contribucionesVO[k]=contribucionVO; } if (listaContribuciones.size() == 0) contribucionesVO = null; else contribucionesVO = (ContribucionVO[]) listaContribuciones .toArray(new ContribucionVO[listaContribuciones.size()]); } else { contribucionesVO = null; } auxAvanzado.getLifeCycle().setContribuciones(contribucionesVO); } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new java.lang.Exception("ciclo.de.vida", ad); } catch (Exception e) { logger.error("Error categoria ciclodevida, metodo guardarMetadatos " + e); throw new java.lang.Exception("ciclo.de.vida", e); } if (!errorFaltaIdioma && !errorFaltaTexto && !errorFechaObli && !errorFechaObliHorMin && !errorFechaZonaHoraria && !errorFechaComboZH && !errorEmail && !errorNoNumero && !errorFechaFueraRango && !errorZHFueraRango && !errorFormatoFecha) { // Cargamos el objeto de sesion if (catalogadorAvSession.getMDSesion() == null) { catalogadorAvSession.setMDSesion(auxAvanzado); } else { if (versionVO == null && estatusSV == null && contribucionesVO == null) catalogadorAvSession.getMDSesion().setLifeCycle(null); else { catalogadorAvSession.getMDSesion().setLifeCycle(auxAvanzado.getLifeCycle()); } } } else { if (errorFormatoFecha) throw new ValidatorException("{error.FormatoFecha}"); else if (errorNoNumero) throw new ValidatorException("{error.NoNumero}"); else if (errorFechaFueraRango) throw new ValidatorException("{error.fechaFueraRango}"); else if (errorFechaObli) throw new ValidatorException("{error.fechaIncompleta}"); else if (errorFechaObliHorMin) throw new ValidatorException("{error.fechaIncompletaHorMin}"); else if (errorFechaZonaHoraria) throw new ValidatorException("{error.fechaIncompletaZonaHora}"); else if (errorFechaComboZH) throw new ValidatorException("{error.fechaSelecionaCombo}"); else if (errorZHFueraRango) throw new ValidatorException("{error.ZonaHoraria}"); else if (errorEmail) throw new ValidatorException("{error.email}"); else if (errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.idioma_texto}"); else if (!errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.texto}"); else throw new ValidatorException("{general.error.idioma}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.metametadatos.MetametadatosControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.metametadatos.MetametadatosController#guardarMetadatos(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.metametadatos.GuardarMetadatosForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) *///from w w w .ja va 2 s.co m public final void guardarMetadatos(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.metametadatos.GuardarMetadatosForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorFechaObli = false; boolean errorFechaObliHorMin = false; boolean errorFechaZonaHoraria = false; boolean errorFechaComboZH = false; boolean errorFecha = false; boolean errorEmail = false; boolean errorNoNumero = false; boolean errorZHFueraRango = false; boolean errorFechaFueraRango = false; boolean errorFormatoFecha = false; CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); LomAvanzadoVO auxAvanzado = null; ContribucionVO[] contribucionesVO = null; IdiomaVO idiomaVO = null; try { auxAvanzado = new LomAvanzadoVO(); AvMetametadataVO metadatos = new AvMetametadataVO(); auxAvanzado.setMetaMetadata(metadatos); String source = AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos"); String usuario = LdapUserDetailsUtils.getUsuario(); //String usuario="empaquetador"; String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(this.getCatalogadorAvSession(request).getIdioma()); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); //metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); Object valor = request.getSession().getAttribute("form"); //Obtenemos la longitudes de los VOs, que pasamos a cambioFormulario para que se obtengan del request los cambios que hemos hecho //Pues en el form que nos viene como parametro no los guarda. int longitudIdentificadores = 0; int longitudEsquemas = 0; int longitudDescripciones = 0; int longitudContribuciones = 0; int[] longitudTextosDesc = new int[0]; int[] longitudEntidadesContrib = new int[0]; if (valor instanceof MetaMetadatosFormImpl) { MetaMetadatosFormImpl valorMeta = ((MetaMetadatosFormImpl) valor); Object[] desc = valorMeta.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorMeta.getContribucion().size()]; for (int i = 0; i < valorMeta.getContribucion().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorMeta.getContribucionAsArray()[i])) .getEntidades().length; } longitudIdentificadores = valorMeta.getIdentificadoresAsArray().length; longitudEsquemas = valorMeta.getEsquemasMetaAsArray().length; longitudContribuciones = valorMeta.getContribucion().size(); longitudDescripciones = desc.length; } else if (valor instanceof MetaMetadatosFormSubmitFormImpl) { MetaMetadatosFormSubmitFormImpl valorMeta = ((MetaMetadatosFormSubmitFormImpl) valor); Object[] desc = valorMeta.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorMeta.getContribucion().size()]; for (int i = 0; i < valorMeta.getContribucion().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorMeta.getContribucionAsArray()[i])) .getEntidades().length; } longitudIdentificadores = valorMeta.getIdentificadoresAsArray().length; longitudEsquemas = valorMeta.getEsquemasMetaAsArray().length; longitudContribuciones = valorMeta.getContribucion().size(); longitudDescripciones = desc.length; } else if (valor instanceof MetadatosNoValidoVolverFormImpl) { MetadatosNoValidoVolverFormImpl valorMeta = ((MetadatosNoValidoVolverFormImpl) valor); Object[] desc = valorMeta.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorMeta.getContribucion().size()]; for (int i = 0; i < valorMeta.getContribucion().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorMeta.getContribucionAsArray()[i])) .getEntidades().length; } longitudIdentificadores = valorMeta.getIdentificadoresAsArray().length; longitudEsquemas = valorMeta.getEsquemasMetaAsArray().length; longitudContribuciones = valorMeta.getContribucion().size(); longitudDescripciones = desc.length; } else if (valor instanceof MetadatosValidoVolverFormImpl) { MetadatosValidoVolverFormImpl valorMeta = ((MetadatosValidoVolverFormImpl) valor); Object[] desc = valorMeta.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudEntidadesContrib = new int[valorMeta.getContribucion().size()]; for (int i = 0; i < valorMeta.getContribucion().size(); i++) { longitudEntidadesContrib[i] = ((Contribucion) (valorMeta.getContribucionAsArray()[i])) .getEntidades().length; } longitudIdentificadores = valorMeta.getIdentificadoresAsArray().length; longitudEsquemas = valorMeta.getEsquemasMetaAsArray().length; longitudContribuciones = valorMeta.getContribucion().size(); longitudDescripciones = desc.length; } //Recogemos los cambio del request mediante parametro cambioFormulario(request, longitudIdentificadores, longitudEsquemas, longitudDescripciones, longitudContribuciones, longitudTextosDesc, longitudEntidadesContrib); //Guardamos los cambios en el form obtenido de request.getSession.getAttribute("form") para que en caso de faltar //algun idioma o texto sin rellenar cargue el formulario con lo cambio y no perdamos todo lo modificado hasta ese //momento, si no lo hicieramos cargara el formulario anterior. //DESCRIPCIONES fecha DescripcionVO[] descripcionesAux = new DescripcionVO[descripciones.length]; for (int i = 0; i < descripciones.length; i++) { DescripcionVO descripAux = new DescripcionVO(); LangStringVO[] langDescrip = descripciones[i].getTextos(); LangStringVO[] langDescripAux = new LangStringVO[langDescrip.length]; for (int j = 0; j < langDescrip.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langDescrip[j].getIdioma()); nuevoLang.setTexto(langDescrip[j].getTexto()); langDescripAux[j] = nuevoLang; } descripAux.setTextos(langDescripAux); descripcionesAux[i] = descripAux; } //CONTRIBUCIONES Contribucion[] contribucionesAux = new Contribucion[contribuciones.length]; for (int i = 0; i < contribuciones.length; i++) { Contribucion contribucionAux = new Contribucion(); //rol SourceValueVO rolAux = new SourceValueVO(); rolAux.setValor(contribuciones[i].getRol().getValor()); //entidad Entidad[] entidades = contribuciones[i].getEntidades(); Entidad[] entidadesAux = new Entidad[entidades.length]; for (int j = 0; j < entidadesAux.length; j++) { Entidad entidad = new Entidad(); entidad.setCorreo(entidades[j].getCorreo()); entidad.setNombre(entidades[j].getNombre()); entidad.setOrganizacion(entidades[j].getOrganizacion()); entidadesAux[j] = entidad; } //fecha Fecha fechaAux = contribuciones[i].getFecha(); //contribucion contribucionAux.setRol(rolAux); contribucionAux.setEntidades(entidadesAux); contribucionAux.setFecha(fechaAux); contribucionesAux[i] = contribucionAux; } //IDENTIFICADORES IdentificadorVO[] identificadoresAux = new IdentificadorVO[identificadores.length]; for (int i = 0; i < identificadores.length; i++) { IdentificadorVO auxIdentificador = new IdentificadorVO(); auxIdentificador.setCatalogo(identificadores[i].getCatalogo()); auxIdentificador.setEntrada(identificadores[i].getEntrada()); identificadoresAux[i] = auxIdentificador; } //ESQUEMAS EsquemaDeMetadatosVO[] esquemasMetaAux = new EsquemaDeMetadatosVO[esquemasMeta.length]; for (int i = 0; i < esquemasMeta.length; i++) { EsquemaDeMetadatosVO auxEsquema = new EsquemaDeMetadatosVO(); auxEsquema.setTexto(esquemasMeta[i].getTexto()); esquemasMetaAux[i] = auxEsquema; } if (valor instanceof MetaMetadatosFormImpl) { MetaMetadatosFormImpl formulario = (MetaMetadatosFormImpl) valor; formulario.setIdentificadoresAsArray(identificadoresAux); formulario.setEsquemasMetaAsArray(esquemasMetaAux); formulario.setContribucionAsArray(contribucionesAux); formulario.setDescripcionesAsArray(descripcionesAux); } else if (valor instanceof MetaMetadatosFormSubmitFormImpl) { MetaMetadatosFormSubmitFormImpl formulario = (MetaMetadatosFormSubmitFormImpl) valor; formulario.setIdentificadoresAsArray(identificadoresAux); formulario.setEsquemasMetaAsArray(esquemasMetaAux); formulario.setContribucionAsArray(contribucionesAux); formulario.setDescripcionesAsArray(descripcionesAux); } else if (valor instanceof MetadatosNoValidoVolverFormImpl) { MetadatosNoValidoVolverFormImpl formulario = (MetadatosNoValidoVolverFormImpl) valor; formulario.setIdentificadoresAsArray(identificadoresAux); formulario.setEsquemasMetaAsArray(esquemasMetaAux); formulario.setContribucionAsArray(contribucionesAux); formulario.setDescripcionesAsArray(descripcionesAux); } else if (valor instanceof MetadatosValidoVolverFormImpl) { MetadatosValidoVolverFormImpl formulario = (MetadatosValidoVolverFormImpl) valor; formulario.setIdentificadoresAsArray(identificadoresAux); formulario.setEsquemasMetaAsArray(esquemasMetaAux); formulario.setContribucionAsArray(contribucionesAux); formulario.setDescripcionesAsArray(descripcionesAux); } idioma = form.getComboIdiomaMeta(); //Obtnemos los terminos de los ids seleccionados en todos los combos, y los guarda en los VO dameTerminoId(); //Comprobamos si los campos ha sido rellenados adecuadamente //IDENTIFICADORES if (identificadores != null && identificadores.length != 0) { ArrayList lista = new ArrayList(); for (int j = 0; j < identificadores.length; j++) { IdentificadorVO ident = (IdentificadorVO) identificadores[j]; if (ident != null) { IdentificadorVO identAux = new IdentificadorVO(); String catalogo = ident.getCatalogo(); String entrada = ident.getEntrada(); if (((catalogo != null) && (!catalogo.trim().equals(""))) || ((entrada != null) && (!entrada.trim().equals("")))) { identAux.setCatalogo(catalogo.trim()); identAux.setEntrada(entrada.trim()); lista.add(identAux); } } } identificadores = (IdentificadorVO[]) lista.toArray(new IdentificadorVO[lista.size()]); if (identificadores.length == 0) identificadores = null; } else identificadores = null; auxAvanzado.getMetaMetadata().setIdentificadores(identificadores); //ESQUEMAS if (esquemasMeta != null && esquemasMeta.length != 0) { ArrayList lista = new ArrayList(); for (int j = 0; j < esquemasMeta.length; j++) { EsquemaDeMetadatosVO esq = (EsquemaDeMetadatosVO) esquemasMeta[j]; if (esq != null) { EsquemaDeMetadatosVO esqAux = new EsquemaDeMetadatosVO(); String texto = esq.getTexto(); if (((texto != null) && (!texto.trim().equals("")))) { esqAux.setTexto(texto.trim()); lista.add(esqAux); } } } esquemasMeta = (EsquemaDeMetadatosVO[]) lista.toArray(new EsquemaDeMetadatosVO[lista.size()]); if (esquemasMeta.length == 0) esquemasMeta = null; } else esquemasMeta = null; auxAvanzado.getMetaMetadata().setEsquemas(esquemasMeta); //IDIOMA idiomaVO = new IdiomaVO(); if ((idioma != null) && (!idioma.equals(""))) { idiomaVO.setTexto(idioma); } else { idiomaVO = null; } auxAvanzado.getMetaMetadata().setIdioma(idiomaVO); //CONTRIBUCIONES contribucionesVO = null; if (contribuciones != null && contribuciones.length != 0) { contribucionesVO = new ContribucionVO[contribuciones.length]; ArrayList listaContribuciones = new ArrayList(); for (int k = 0; k < contribuciones.length; k++) { ContribucionVO contribucionVO = new ContribucionVO(); //FECHA FechaVO fechaVO = new FechaVO(); //Descripciones /**********************************************/ if (descripciones != null && descripciones.length != 0) { if (descripciones[k] != null) { ArrayList listDesc = new ArrayList(); DescripcionVO lDesc = (DescripcionVO) (descripciones[k]); DescripcionVO lDescripciones = new DescripcionVO(); for (int j = 0; j < lDesc.getTextos().length; j++) { LangStringVO lang = lDesc.getTextos()[j]; LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto(); if (((idioma != null) && (!idioma.trim().equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma.trim()); lLang.setTexto(texto.trim()); listDesc.add(lLang); } else { if (idioma.equals("") && !texto.trim().equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.trim().equals("")) errorFaltaTexto = true; } } if (listDesc.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listDesc .toArray(new LangStringVO[listDesc.size()]); lDescripciones.setTextos(langs); fechaVO.setDescripcion(lDescripciones); } else {//meter una vacia??? fechaVO.setDescripcion(null); } } } /**********************************************/ //fecha /**********************************************/ // es obl al menos yyyy-MM-dd Fecha fechaAux = contribuciones[k].getFecha(); Integer[] errores = fechaAux.validar(); if (errores.length > 0) { for (int i = 0; i < errores.length; i++) { if (errores[i].equals(Fecha.ErrorNoNumero) && !errorNoNumero) errorNoNumero = true; else if (errores[i].equals(Fecha.ErrorFechaFueraRango) && !errorFechaFueraRango) errorFechaFueraRango = true; else if (errores[i].equals(Fecha.ErrorZHFueraRango) && !errorZHFueraRango) errorZHFueraRango = true; else if (errores[i].equals(Fecha.ErrorFechaComboZH) && !errorFechaComboZH) errorFechaComboZH = true; else if (errores[i].equals(Fecha.ErrorFechaZonaHoraria) && !errorFechaZonaHoraria) errorFechaZonaHoraria = true; else if (errores[i].equals(Fecha.ErrorFechaObliHorMin) && !errorFechaObliHorMin) errorFechaObliHorMin = true; else if (errores[i].equals(Fecha.ErrorFechaObli) && !errorFechaObli) errorFechaObli = true; else if (errores[i].equals(Fecha.ErrorFormatoFecha) && !errorFormatoFecha) errorFormatoFecha = true; } } if (errores.length == 0) { fechaVO.setFecha(fechaAux.getFechaLomes()); } else { fechaVO.setFecha(null); } if (fechaVO.getDescripcion() == null && fechaVO.getFecha() == null) fechaVO = null; contribucionVO.setFecha(fechaVO); /**********************************************/ //rol /**********************************************/ SourceValueVO rolVO = new SourceValueVO(); String rol = contribuciones[k].getRol().getValor(); if ((rol != null) && (!rol.equals(""))) { rolVO.setSource(source); rolVO.setValor(rol); } else { rolVO = null; } contribucionVO.setTipo(rolVO); /**********************************************/ //entidad /**********************************************/ EntidadVO[] entidadesVO = null; Entidad[] entidades = contribuciones[k].getEntidades(); ArrayList listaEntidades = new ArrayList(); for (int i = 0; i < entidades.length; i++) { Entidad entidad = entidades[i]; EntidadVO entidadVO = new EntidadVO(); String textoEnt = ""; if (!entidad.getOrganizacion().trim().equals("") || !entidad.getCorreo().trim().equals("") || !entidad.getNombre().trim().equals("")) { if (!entidad.getCorreo().trim().equals("")) { if (validaEmail(entidad.getCorreo())) { textoEnt = new StringBuffer("BEGIN:VCARD VERSION:3.0 FN:") .append(entidad.getNombre().trim()).append(" EMAIL;TYPE=INTERNET:") .append(entidad.getCorreo().trim()).append(" ORG:") .append(entidad.getOrganizacion().trim()).append(" END:VCARD") .toString(); entidadVO.setTexto(textoEnt); listaEntidades.add(entidadVO); } else errorEmail = true; } else { textoEnt = new StringBuffer("BEGIN:VCARD VERSION:3.0 FN:") .append(entidad.getNombre().trim()).append(" EMAIL;TYPE=INTERNET:") .append(entidad.getCorreo().trim()).append(" ORG:") .append(entidad.getOrganizacion().trim()).append(" END:VCARD").toString(); entidadVO.setTexto(textoEnt); listaEntidades.add(entidadVO); } } } if (listaEntidades.size() == 0) entidadesVO = null; else entidadesVO = (EntidadVO[]) listaEntidades.toArray(new EntidadVO[listaEntidades.size()]); contribucionVO.setEntidades(entidadesVO); /**********************************************/ //aado contribucionVO si tiene algo if (contribucionVO.getEntidades() != null || contribucionVO.getFecha() != null || contribucionVO.getTipo() != null) listaContribuciones.add(contribucionVO); //contribucionesVO[k]=contribucionVO; } if (listaContribuciones.size() == 0) contribucionesVO = null; else contribucionesVO = (ContribucionVO[]) listaContribuciones .toArray(new ContribucionVO[listaContribuciones.size()]); } else { contribucionesVO = null; } auxAvanzado.getMetaMetadata().setContribuciones(contribucionesVO); } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new Exception("ver.metadatos", ad); } catch (Exception e) { logger.error("Error en catalogadorWeb verMetadatos, metodo guardarMetametadatos " + e); throw new Exception("ver.metadatos", e); } if (!errorFaltaIdioma && !errorFaltaTexto && !errorFechaObli && !errorFechaObliHorMin && !errorFechaZonaHoraria && !errorFechaComboZH && !errorEmail && !errorNoNumero && !errorFechaFueraRango && !errorZHFueraRango && !errorFormatoFecha) { try { // Cargamos el objeto de sesion if (catalogadorAvSession.getMDSesion() == null) { catalogadorAvSession.setMDSesion(auxAvanzado); } else { if (contribucionesVO == null && esquemasMeta == null && identificadores == null && idiomaVO == null) catalogadorAvSession.getMDSesion().setMetaMetadata(null); else catalogadorAvSession.getMDSesion().setMetaMetadata(auxAvanzado.getMetaMetadata()); } } catch (Exception e) { logger.error("Error en catalogadorWeb verMetadatos, metodo guardarMetametadatos " + e); throw new Exception("ver.metadatos", e); } } else { if (errorFormatoFecha) throw new ValidatorException("{error.FormatoFecha}"); else if (errorNoNumero) throw new ValidatorException("{error.NoNumero}"); else if (errorFechaFueraRango) throw new ValidatorException("{error.fechaFueraRango}"); else if (errorFechaObli) throw new ValidatorException("{error.fechaIncompleta}"); else if (errorFechaObliHorMin) throw new ValidatorException("{error.fechaIncompletaHorMin}"); else if (errorFechaZonaHoraria) throw new ValidatorException("{error.fechaIncompletaZonaHora}"); else if (errorFechaComboZH) throw new ValidatorException("{error.fechaSelecionaCombo}"); else if (errorZHFueraRango) throw new ValidatorException("{error.ZonaHoraria}"); else if (errorEmail) throw new ValidatorException("{error.email}"); else if (errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.idioma_texto}"); else if (!errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.texto}"); else throw new ValidatorException("{general.error.idioma}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.general.GeneralControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.general.GeneralController#guardarGeneral(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.general.GuardarGeneralForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */// w w w.j a v a 2s . c o m public final void guardarGeneral(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.general.GuardarGeneralForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorFaltaUnTitulo = false; InputStream is = null; Properties prop = new Properties(); CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); LomAvanzadoVO auxAvanzado = null; TituloVO tituloVO = null; SourceValueVO nivel = null; SourceValueVO estructuraSV = null; try { auxAvanzado = new LomAvanzadoVO(); AvGeneralVO general = new AvGeneralVO(); auxAvanzado.setGeneral(general); is = this.getClass().getResourceAsStream("/catalogadorAvanzado.properties"); prop.load(is); String source = AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos"); ; String idiomaLdap = ((Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)) .getLanguage(); //String idiomaLdap="es"; String usuario = LdapUserDetailsUtils.getUsuario(); //String usuario="empaquetador"; String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(idiomaLdap); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); // metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); Object valor = request.getSession().getAttribute("form"); //Obtenemos la longitudes de los VOs, que pasamos a cambioFormulario para que se obtengan del request los cambios que hemos hecho //Pues en el form que nos viene como parametro no los guarda. int longitudDescripciones = 0; int longitudPalabrasClave = 0; int longitudAmbitos = 0; int longitudIdentificadores = 0; int longitudIdiomas = 0; int longitudTitulo = 0; int[] longitudTextosDesc = new int[0]; int[] longitudTextosPCla = new int[0]; int[] longitudTextosAmbitos = new int[0]; Object[] desc = null; Object[] pCla = null; Object[] amb = null; if (valor instanceof GeneralFormImpl) { GeneralFormImpl valorGen = ((GeneralFormImpl) valor); desc = valorGen.getDescripcionesAsArray(); pCla = valorGen.getPalabrasClaveAsArray(); amb = valorGen.getAmbitosAsArray(); longitudPalabrasClave = valorGen.getPalabrasClaveAsArray() != null ? valorGen.getPalabrasClaveAsArray().length : 0; longitudAmbitos = valorGen.getAmbitosAsArray() != null ? valorGen.getAmbitosAsArray().length : 0; longitudIdentificadores = valorGen.getIdentificadoresAsArray() != null ? valorGen.getIdentificadoresAsArray().length : 0; longitudIdiomas = valorGen.getIdiomasAsArray() != null ? valorGen.getIdiomasAsArray().length : 0; longitudTitulo = (((TituloVO[]) valorGen.getTitulosAsArray())[0]) != null ? (((TituloVO[]) valorGen.getTitulosAsArray())[0]).getTextos().length : 0; } else if (valor instanceof GeneralFormSubmitFormImpl) { GeneralFormSubmitFormImpl valorGen = ((GeneralFormSubmitFormImpl) valor); desc = valorGen.getDescripcionesAsArray(); pCla = valorGen.getPalabrasClaveAsArray(); amb = valorGen.getAmbitosAsArray(); longitudPalabrasClave = valorGen.getPalabrasClaveAsArray() != null ? valorGen.getPalabrasClaveAsArray().length : 0; longitudAmbitos = valorGen.getAmbitosAsArray() != null ? valorGen.getAmbitosAsArray().length : 0; longitudIdentificadores = valorGen.getIdentificadoresAsArray() != null ? valorGen.getIdentificadoresAsArray().length : 0; longitudIdiomas = valorGen.getIdiomasAsArray() != null ? valorGen.getIdiomasAsArray().length : 0; longitudTitulo = (((TituloVO[]) valorGen.getTitulosAsArray())[0]) != null ? (((TituloVO[]) valorGen.getTitulosAsArray())[0]).getTextos().length : 0; } else if (valor instanceof ValidoGeneralVolverFormImpl) { ValidoGeneralVolverFormImpl valorGen = ((ValidoGeneralVolverFormImpl) valor); desc = valorGen.getDescripcionesAsArray(); pCla = valorGen.getPalabrasClaveAsArray(); amb = valorGen.getAmbitosAsArray(); longitudPalabrasClave = valorGen.getPalabrasClaveAsArray() != null ? valorGen.getPalabrasClaveAsArray().length : 0; longitudAmbitos = valorGen.getAmbitosAsArray() != null ? valorGen.getAmbitosAsArray().length : 0; longitudIdentificadores = valorGen.getIdentificadoresAsArray() != null ? valorGen.getIdentificadoresAsArray().length : 0; longitudIdiomas = valorGen.getIdiomasAsArray() != null ? valorGen.getIdiomasAsArray().length : 0; longitudTitulo = (((TituloVO[]) valorGen.getTitulosAsArray())[0]) != null ? (((TituloVO[]) valorGen.getTitulosAsArray())[0]).getTextos().length : 0; } else if (valor instanceof NoValidoGeneralVolverFormImpl) { NoValidoGeneralVolverFormImpl valorGen = ((NoValidoGeneralVolverFormImpl) valor); desc = valorGen.getDescripcionesAsArray(); pCla = valorGen.getPalabrasClaveAsArray(); amb = valorGen.getAmbitosAsArray(); longitudPalabrasClave = valorGen.getPalabrasClaveAsArray() != null ? valorGen.getPalabrasClaveAsArray().length : 0; longitudAmbitos = valorGen.getAmbitosAsArray() != null ? valorGen.getAmbitosAsArray().length : 0; longitudIdentificadores = valorGen.getIdentificadoresAsArray() != null ? valorGen.getIdentificadoresAsArray().length : 0; longitudIdiomas = valorGen.getIdiomasAsArray() != null ? valorGen.getIdiomasAsArray().length : 0; longitudTitulo = (((TituloVO[]) valorGen.getTitulosAsArray())[0]) != null ? (((TituloVO[]) valorGen.getTitulosAsArray())[0]).getTextos().length : 0; } longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } longitudTextosPCla = new int[pCla.length]; for (int i = 0; i < pCla.length; i++) { longitudTextosPCla[i] = ((PalabraClaveVO) pCla[i]).getTextos().length; } longitudTextosAmbitos = new int[amb.length]; for (int i = 0; i < amb.length; i++) { longitudTextosAmbitos[i] = ((AmbitoVO) amb[i]).getTextos().length; } longitudDescripciones = desc.length; //Recogemos los cambio del request mediante parametros cambioFormulario(request, longitudTextosDesc, longitudTextosPCla, longitudTextosAmbitos, longitudDescripciones, longitudPalabrasClave, longitudAmbitos, longitudIdentificadores, longitudIdiomas, longitudTitulo); //Guardamos los cambios en el form obtenido de request.getSession.getAttribute("form") para que en caso de faltar //algun idioma o texto sin rellenar cargue el formulario con lo cambio y no perdamos todo lo modificado hasta ese //momento, si no lo hicieramos cargara el formulario anterior. (Nivel de Agregacion y Estructura si mantienen los //cambios) //IDENTIFICADORES IdentificadorVO[] identificadoresAux = new IdentificadorVO[identificadores.length]; for (int i = 0; i < identificadores.length; i++) { IdentificadorVO auxIdentificador = new IdentificadorVO(); auxIdentificador.setCatalogo(identificadores[i].getCatalogo().trim()); auxIdentificador.setEntrada(identificadores[i].getEntrada().trim()); identificadoresAux[i] = auxIdentificador; } //IDIOMAS IdiomaVO[] idiomasAux = new IdiomaVO[idiomas.length]; for (int i = 0; i < idiomas.length; i++) { IdiomaVO auxIdioma = new IdiomaVO(); auxIdioma.setTexto(idiomas[i].getTexto()); idiomasAux[i] = auxIdioma; } //TITULOS TituloVO[] titulosAux = new TituloVO[1]; LangStringVO[] langTitAux = new LangStringVO[titulos[0].getTextos().length]; for (int i = 0; i < titulos[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(titulos[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(titulos[0].getTextos()[i].getTexto().trim()); langTitAux[i] = nuevoLang; } TituloVO titAux = new TituloVO(); titAux.setTextos(langTitAux); titulosAux[0] = titAux; //DESCRIPCIONES DescripcionVO[] descripcionesAux = new DescripcionVO[descripciones.length]; for (int i = 0; i < descripciones.length; i++) { DescripcionVO descripAux = new DescripcionVO(); LangStringVO[] langDescrip = descripciones[i].getTextos(); LangStringVO[] langDescripAux = new LangStringVO[langDescrip.length]; for (int j = 0; j < langDescrip.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langDescrip[j].getIdioma()); nuevoLang.setTexto(langDescrip[j].getTexto().trim()); langDescripAux[j] = nuevoLang; } descripAux.setTextos(langDescripAux); descripcionesAux[i] = descripAux; } //PALABRAS CLAVE PalabraClaveVO[] palabrasClaveAux = new PalabraClaveVO[palabrasClave.length]; for (int i = 0; i < palabrasClave.length; i++) { PalabraClaveVO pClaveAux = new PalabraClaveVO(); LangStringVO[] langPClave = palabrasClave[i].getTextos(); LangStringVO[] langPClaveAux = new LangStringVO[langPClave.length]; for (int j = 0; j < langPClave.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langPClave[j].getIdioma()); nuevoLang.setTexto(langPClave[j].getTexto().trim()); langPClaveAux[j] = nuevoLang; } pClaveAux.setTextos(langPClaveAux); palabrasClaveAux[i] = pClaveAux; } //AMBITOS AmbitoVO[] ambitosAux = new AmbitoVO[ambitos.length]; for (int i = 0; i < ambitos.length; i++) { AmbitoVO ambAux = new AmbitoVO(); LangStringVO[] langAmbitos = ambitos[i].getTextos(); LangStringVO[] langAmbitosAux = new LangStringVO[langAmbitos.length]; for (int j = 0; j < langAmbitos.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langAmbitos[j].getIdioma()); nuevoLang.setTexto(langAmbitos[j].getTexto().trim()); langAmbitosAux[j] = nuevoLang; } ambAux.setTextos(langAmbitosAux); ambitosAux[i] = ambAux; } if (valor instanceof GeneralFormImpl) { ((GeneralFormImpl) valor).setIdiomasAsArray(idiomasAux); ((GeneralFormImpl) valor).setTitulosAsArray(titulosAux); ((GeneralFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((GeneralFormImpl) valor).setPalabrasClaveAsArray(palabrasClaveAux); ((GeneralFormImpl) valor).setAmbitosAsArray(ambitosAux); } else if (valor instanceof GeneralFormSubmitFormImpl) { ((GeneralFormSubmitFormImpl) valor).setIdiomasAsArray(idiomasAux); ((GeneralFormSubmitFormImpl) valor).setTitulosAsArray(titulosAux); ((GeneralFormSubmitFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((GeneralFormSubmitFormImpl) valor).setPalabrasClaveAsArray(palabrasClaveAux); ((GeneralFormSubmitFormImpl) valor).setAmbitosAsArray(ambitosAux); } else if (valor instanceof ValidoGeneralVolverFormImpl) { ((ValidoGeneralVolverFormImpl) valor).setIdiomasAsArray(idiomasAux); ((ValidoGeneralVolverFormImpl) valor).setTitulosAsArray(titulosAux); ((ValidoGeneralVolverFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((ValidoGeneralVolverFormImpl) valor).setPalabrasClaveAsArray(palabrasClaveAux); ((ValidoGeneralVolverFormImpl) valor).setAmbitosAsArray(ambitosAux); } else if (valor instanceof NoValidoGeneralVolverFormImpl) { ((NoValidoGeneralVolverFormImpl) valor).setIdiomasAsArray(idiomasAux); ((NoValidoGeneralVolverFormImpl) valor).setTitulosAsArray(titulosAux); ((NoValidoGeneralVolverFormImpl) valor).setDescripcionesAsArray(descripcionesAux); ((NoValidoGeneralVolverFormImpl) valor).setPalabrasClaveAsArray(palabrasClaveAux); ((NoValidoGeneralVolverFormImpl) valor).setAmbitosAsArray(ambitosAux); } estructura = form.getEstructura(); nivelAgregacion = form.getNivelAgregacion(); //Obtnemos los terminos de los ids seleccionados en todos los combos, y los guarda en los VO dameTerminoId(); //Comprobamos si los campos ha sido rellenados adecuadamente //IDENTIFICADORES if (identificadores != null && identificadores.length != 0) { ArrayList lista = new ArrayList(); for (int j = 0; j < identificadores.length; j++) { IdentificadorVO ident = (IdentificadorVO) identificadores[j]; if (ident != null) { IdentificadorVO identAux = new IdentificadorVO(); String catalogo = ident.getCatalogo().trim(); String entrada = ident.getEntrada().trim(); if (((catalogo != null) && (!catalogo.equals(""))) || ((entrada != null) && (!entrada.equals("")))) { identAux.setCatalogo(catalogo); identAux.setEntrada(entrada); lista.add(identAux); } } } identificadores = (IdentificadorVO[]) lista.toArray(new IdentificadorVO[lista.size()]); if (identificadores.length == 0) identificadores = null; } else identificadores = null; auxAvanzado.getGeneral().setIdentificadores(identificadores); //TITULOS tituloVO = new TituloVO(); if (titulos != null && titulos.length != 0) { TituloVO titulo = (TituloVO) titulos[0]; LangStringVO[] textos = titulo.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lTit = (LangStringVO) textos[j]; if (lTit != null) { LangStringVO lLang = new LangStringVO(); String idioma = lTit.getIdioma(); String texto = lTit.getTexto().trim(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); lista.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) { tituloVO = null; errorFaltaUnTitulo = true; } else tituloVO.setTextos(lLangS); } else { tituloVO = null; errorFaltaUnTitulo = true; } auxAvanzado.getGeneral().setTitulo(tituloVO); //IDIOMAS ArrayList lTextos = new ArrayList(); //if(!((idiomas.length == 1) && (idiomas[0].getTexto().equals("")))){ if (idiomas != null && !((idiomas.length == 1) && (idiomas[0].getTexto().equals("")))) { for (int i = 0; i < idiomas.length; i++) { if (idiomas[i] != null) { IdiomaVO idiomaVO = new IdiomaVO(); IdiomaVO idiVO = (IdiomaVO) (idiomas[i]); if ((idiVO.getTexto() != null) && (!idiVO.getTexto().equals(""))) { idiomaVO.setTexto(idiVO.getTexto()); lTextos.add(idiomaVO); } } else idiomas = null; } idiomas = (IdiomaVO[]) lTextos.toArray(new IdiomaVO[lTextos.size()]); if (idiomas.length == 0) idiomas = null; } else { idiomas = null; } auxAvanzado.getGeneral().setIdiomas(idiomas); //DESCRIPCIONES ArrayList listaDesc = new ArrayList(); if (descripciones != null && descripciones.length != 0) { LangStringVO[] textos = descripciones[0].getTextos(); if (descripciones.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().equals("")) { descripciones = null; } else { for (int i = 0; i < descripciones.length; i++) { if (descripciones[i] != null) { ArrayList listDesc = new ArrayList(); DescripcionVO lDesc = (DescripcionVO) (descripciones[i]); DescripcionVO lDescripciones = new DescripcionVO(); for (int j = 0; j < lDesc.getTextos().length; j++) { LangStringVO lang = lDesc.getTextos()[j]; LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto().trim(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); listDesc.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listDesc.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listDesc .toArray(new LangStringVO[listDesc.size()]); lDescripciones.setTextos(langs); listaDesc.add(lDescripciones); } } } if (listaDesc.size() == 0) descripciones = null; else descripciones = (DescripcionVO[]) listaDesc.toArray(new DescripcionVO[listaDesc.size()]); } } else { descripciones = null; } auxAvanzado.getGeneral().setDescripciones(descripciones); //PALABRAS CLAVE ArrayList listaPalabras = null; if (palabrasClave != null && palabrasClave.length != 0) { LangStringVO[] textos = palabrasClave[0].getTextos(); if (palabrasClave.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().equals("")) { palabrasClave = null; } else { listaPalabras = new ArrayList(); for (int i = 0; i < palabrasClave.length; i++) { if (palabrasClave[i] != null) { ArrayList listPalabras = new ArrayList(); PalabraClaveVO lPalabras = (PalabraClaveVO) (palabrasClave[i]); PalabraClaveVO lPalabrasClave = new PalabraClaveVO(); for (int j = 0; j < lPalabras.getTextos().length; j++) { LangStringVO lang = (LangStringVO) (lPalabras.getTextos()[j]); LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto().trim(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); listPalabras.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listPalabras.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listPalabras .toArray(new LangStringVO[listPalabras.size()]); lPalabrasClave.setTextos(langs); listaPalabras.add(lPalabrasClave); } } } if (listaPalabras.size() == 0) palabrasClave = null; else palabrasClave = (PalabraClaveVO[]) listaPalabras .toArray(new PalabraClaveVO[listaPalabras.size()]); } } else palabrasClave = null; auxAvanzado.getGeneral().setPalabrasClave(palabrasClave); //AMBITOS ArrayList listaAmbitos = null; if (ambitos != null && ambitos.length != 0) { LangStringVO[] textos = ambitos[0].getTextos(); if (ambitos.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().equals("")) { ambitos = null; } else { listaAmbitos = new ArrayList(); for (int i = 0; i < ambitos.length; i++) { if (ambitos[i] != null) { ArrayList listAmbito = new ArrayList(); AmbitoVO lAmbito = (AmbitoVO) (ambitos[i]); AmbitoVO lAmb = new AmbitoVO(); for (int j = 0; j < lAmbito.getTextos().length; j++) { LangStringVO lang = (LangStringVO) (lAmbito.getTextos()[j]); LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto().trim(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); listAmbito.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listAmbito.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listAmbito .toArray(new LangStringVO[listAmbito.size()]); lAmb.setTextos(langs); listaAmbitos.add(lAmb); } } } if (listaAmbitos.size() == 0) ambitos = null; else ambitos = (AmbitoVO[]) listaAmbitos.toArray(new AmbitoVO[listaAmbitos.size()]); } } else ambitos = null; auxAvanzado.getGeneral().setAmbitos(ambitos); //ESTRUCTURA estructuraSV = new SourceValueVO(); if ((estructura != null) && (!estructura.equals(""))) { estructuraSV.setValor(estructura); estructuraSV.setSource(source); } else { estructuraSV = null; } auxAvanzado.getGeneral().setEstructura(estructuraSV); //NIVEL AGREGACION nivel = new SourceValueVO(); if ((nivelAgregacion != null) && (!nivelAgregacion.equals(""))) { nivel.setSource(source); nivel.setValor(nivelAgregacion); } else { nivel = null; } auxAvanzado.getGeneral().setNivelAgregacion(nivel); } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new Exception("general", ad); } catch (Exception e) { logger.error("Error en Servicio de catalogacionWeb, categora General, mtodo guardarGeneral " + e); throw new Exception("general", e); } if (!errorFaltaIdioma && !errorFaltaTexto && !errorFaltaUnTitulo) { try { // Cargamos el objeto de sesion if (catalogadorAvSession.getMDSesion() == null) { catalogadorAvSession.setMDSesion(auxAvanzado); } else { if (identificadores == null && idiomas == null && tituloVO == null && descripciones == null & palabrasClave == null && ambitos == null && nivel == null && estructuraSV == null) catalogadorAvSession.getMDSesion().setGeneral(null); else catalogadorAvSession.getMDSesion().setGeneral(auxAvanzado.getGeneral()); } } catch (Exception e) { logger.error("Error en Servicio de catalogacionWeb, categora General, mtodo guardarGeneral " + e); throw new Exception("general", e); } } else { if (errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.idioma_texto}"); else if (!errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.texto}"); else if (errorFaltaIdioma && !errorFaltaTexto) throw new ValidatorException("{general.error.idioma}"); else if (errorFaltaUnTitulo) throw new ValidatorException("{general.error.falta_titulo}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.DetalleClasificacionControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.DetalleClasificacionController#guardarClasificacion(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.clasificacion.detalleClasificacion.GuardarClasificacionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) *///from w w w . j a v a 2 s . co m public final void guardarClasificacion(ActionMapping mapping, GuardarClasificacionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorDatosEntidad = false; boolean errorFechaObli = false; boolean errorFuenteTexto = false; boolean errorFuenteIdioma = false; boolean errorTaxones = false; RutaTaxonomicaVO[] rutasT = null; InputStream is = null; Properties prop = new Properties(); CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); AvClassificationVO clasificacionG = null; try { is = this.getClass().getResourceAsStream("/catalogadorAvanzado.properties"); prop.load(is); String idiomaLdap = ((Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)) .getLanguage(); String usuario = LdapUserDetailsUtils.getUsuario(); String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(idiomaLdap); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); // metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); //Recoge los valores y los cambios en el formulario Object valor = request.getSession().getAttribute("form"); //rellenamos los datos del formulario dependiendo del tipo de formulario que nos venga if (valor instanceof DetalleClasificacionFormImpl) { form.setComboIdiomaValueList(((DetalleClasificacionFormImpl) valor).getComboIdiomaValueList()); form.setComboIdiomaLabelList(((DetalleClasificacionFormImpl) valor).getComboIdiomaLabelList()); form.setDescripciones(((DetalleClasificacionFormImpl) valor).getDescripciones()); form.setPalabrasClave(((DetalleClasificacionFormImpl) valor).getPalabrasClave()); form.setTituloClasificacion(((DetalleClasificacionFormImpl) valor).getTituloClasificacion()); form.setRazonValueList(((DetalleClasificacionFormImpl) valor).getRazonValueList()); form.setRazonLabelList(((DetalleClasificacionFormImpl) valor).getRazonLabelList()); form.setRutaTaxonomica(((DetalleClasificacionFormImpl) valor).getRutaTaxonomica()); form.setSourceValueList(((DetalleClasificacionFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((DetalleClasificacionFormImpl) valor).getSourceLabelList()); } else if (valor instanceof DetalleClasificacionSubmitFormImpl) { form.setComboIdiomaValueList( ((DetalleClasificacionSubmitFormImpl) valor).getComboIdiomaValueList()); form.setComboIdiomaLabelList( ((DetalleClasificacionSubmitFormImpl) valor).getComboIdiomaLabelList()); form.setDescripciones(((DetalleClasificacionSubmitFormImpl) valor).getDescripciones()); form.setPalabrasClave(((DetalleClasificacionSubmitFormImpl) valor).getPalabrasClave()); form.setTituloClasificacion(((DetalleClasificacionSubmitFormImpl) valor).getTituloClasificacion()); form.setRazonValueList(((DetalleClasificacionSubmitFormImpl) valor).getRazonValueList()); form.setRazonLabelList(((DetalleClasificacionSubmitFormImpl) valor).getRazonLabelList()); form.setRutaTaxonomica(((DetalleClasificacionSubmitFormImpl) valor).getRutaTaxonomica()); form.setSourceValueList(((DetalleClasificacionSubmitFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((DetalleClasificacionSubmitFormImpl) valor).getSourceLabelList()); } else if (valor instanceof ClasificacionNoValidaVolverFormImpl) { form.setComboIdiomaLabelList( ((ClasificacionNoValidaVolverFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList( ((ClasificacionNoValidaVolverFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((ClasificacionNoValidaVolverFormImpl) valor).getDescripciones()); form.setPalabrasClave(((ClasificacionNoValidaVolverFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((ClasificacionNoValidaVolverFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((ClasificacionNoValidaVolverFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((ClasificacionNoValidaVolverFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((ClasificacionNoValidaVolverFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((ClasificacionNoValidaVolverFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((ClasificacionNoValidaVolverFormImpl) valor).getSourceLabelList()); } else if (valor instanceof ClasificacionValidaVolverFormImpl) { form.setComboIdiomaLabelList(((ClasificacionValidaVolverFormImpl) valor).getComboIdiomaLabelList()); form.setComboIdiomaValueList(((ClasificacionValidaVolverFormImpl) valor).getComboIdiomaValueList()); form.setDescripciones(((ClasificacionValidaVolverFormImpl) valor).getDescripciones()); form.setPalabrasClave(((ClasificacionValidaVolverFormImpl) valor).getPalabrasClave()); form.setRazonLabelList(((ClasificacionValidaVolverFormImpl) valor).getRazonLabelList()); form.setRazonValueList(((ClasificacionValidaVolverFormImpl) valor).getRazonValueList()); form.setRutaTaxonomica(((ClasificacionValidaVolverFormImpl) valor).getRutaTaxonomica()); form.setTituloClasificacion(((ClasificacionValidaVolverFormImpl) valor).getTituloClasificacion()); form.setSourceValueList(((ClasificacionValidaVolverFormImpl) valor).getSourceValueList()); form.setSourceLabelList(((ClasificacionValidaVolverFormImpl) valor).getSourceLabelList()); } int longitudTextosDesc = form.getDescripciones().size(); int[] longitudTextosPCla = new int[form.getPalabrasClave().size()]; for (int i = 0; i < form.getPalabrasClave().size(); i++) { longitudTextosPCla[i] = ((PalabraClaveVO) (form.getPalabrasClaveAsArray()[i])).getTextos().length; } int longitudPalabrasClave = form.getPalabrasClave().size(); int longitudRutaTaxonomica = form.getRutaTaxonomica().size(); int[] longiTextosFuente = new int[form.getRutaTaxonomica().size()]; int[] longiTaxones = new int[form.getRutaTaxonomica().size()]; if (form.getRutaTaxonomica() != null) { for (int i = 0; i < form.getRutaTaxonomica().size(); i++) { longiTextosFuente[i] = ((RutaTaxonomicaVO) (form.getRutaTaxonomicaAsArray()[i])).getFuente() .getTextos().length; longiTaxones[i] = ((RutaTaxonomicaVO) (form.getRutaTaxonomicaAsArray()[i])).getTaxones().length; } } cambioFormulario(request, longitudTextosDesc, longitudTextosPCla, longitudPalabrasClave, longitudRutaTaxonomica, longiTextosFuente, longiTaxones, null); form.setRazon(razon); form.setRutaTaxonomicaAsArray(rutasTaxonomicas); form.setDescripcionesAsArray(descripcion.getTextos()); form.setPalabrasClaveAsArray(palabrasClave); //MODIFICAMOS VALOR!! if (valor instanceof DetalleClasificacionFormImpl) { DetalleClasificacionFormImpl formulario = (DetalleClasificacionFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); } else if (valor instanceof DetalleClasificacionSubmitFormImpl) { DetalleClasificacionSubmitFormImpl formulario = (DetalleClasificacionSubmitFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); } else if (valor instanceof ClasificacionNoValidaVolverFormImpl) { ClasificacionNoValidaVolverFormImpl formulario = (ClasificacionNoValidaVolverFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); } else if (valor instanceof ClasificacionValidaVolverFormImpl) { ClasificacionValidaVolverFormImpl formulario = (ClasificacionValidaVolverFormImpl) valor; formulario.setComboIdiomaLabelList(form.getComboIdiomaLabelList()); formulario.setComboIdiomaValueList(form.getComboIdiomaValueList()); formulario.setDescripcionesAsArray(form.getDescripcionesAsArray()); formulario.setPalabrasClaveAsArray(form.getPalabrasClaveAsArray()); formulario.setTituloClasificacion(form.getTituloClasificacion()); formulario.setRazonLabelList(form.getRazonLabelList()); formulario.setRazonValueList(form.getRazonValueList()); formulario.setRutaTaxonomica(form.getRutaTaxonomica()); formulario.setSourceLabelList(form.getSourceLabelList()); formulario.setSourceValueList(form.getSourceValueList()); } //////////////////////////////////////////////////////////////////////////// //Hasta aqui tenemos recogidos todos los cambios del formulario que vams a guardar clasificacionG = new AvClassificationVO(); clasificacionG.setRutasTaxonomicas(rutasTaxonomicas); //clasificacionG.setRutasTaxonomicas(rutasT); //Guardamos DESCRIPCIONES if (descripcion != null) { LangStringVO[] landDesc = descripcion.getTextos(); ArrayList descAux = new ArrayList(); for (int d = 0; d < landDesc.length; d++) { if (landDesc[d] != null) { String textoDesc = landDesc[d].getTexto(); String idioDesc = landDesc[d].getIdioma(); if (((textoDesc != null) && (!textoDesc.equals(""))) && ((idioDesc != null) && (!idioDesc.equals("")))) { LangStringVO lanDescAux = new LangStringVO(); lanDescAux.setTexto(textoDesc); lanDescAux.setIdioma(idioDesc); descAux.add(lanDescAux); //lo metemos en el array auxiliar } else {//comprueba si alguno esta incompleto if (idioDesc.equals("") && !textoDesc.equals("")) errorFaltaIdioma = true; if (!idioDesc.equals("") && textoDesc.equals("")) errorFaltaTexto = true; } } } LangStringVO[] textos = null; if (descAux.size() > 0) textos = (LangStringVO[]) descAux.toArray(new LangStringVO[descAux.size()]); descripcion.setTextos(textos); } clasificacionG.setDescripcion(descripcion); //Guardamos PALABRAS CLAVE ArrayList listaPalabras = null; if (palabrasClave != null && palabrasClave.length != 0) { LangStringVO[] textos = palabrasClave[0].getTextos(); if (palabrasClave.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().equals("")) { palabrasClave = null; } else { listaPalabras = new ArrayList(); for (int i = 0; i < palabrasClave.length; i++) { if (palabrasClave[i] != null) { ArrayList listPalabras = new ArrayList(); PalabraClaveVO lPalabras = (PalabraClaveVO) (palabrasClave[i]); PalabraClaveVO lPalabrasClave = new PalabraClaveVO(); for (int j = 0; j < lPalabras.getTextos().length; j++) { LangStringVO lang = (LangStringVO) (lPalabras.getTextos()[j]); LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); listPalabras.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listPalabras.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listPalabras .toArray(new LangStringVO[listPalabras.size()]); lPalabrasClave.setTextos(langs); listaPalabras.add(lPalabrasClave); } } } if (listaPalabras.size() == 0) palabrasClave = null; else palabrasClave = (PalabraClaveVO[]) listaPalabras .toArray(new PalabraClaveVO[listaPalabras.size()]); } } //fin inicio palabra clave else palabrasClave = null; clasificacionG.setPalabrasClave(palabrasClave); } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new java.lang.Exception("detalle.clasificacion", ad); } catch (Exception e) { logger.error("Error en catalogadorWeb, categoria DetalleClasificacion, metodo guardarMetadatos " + e); throw new java.lang.Exception("detalle.clasificacion", e); } //fin if (!errorFuenteTexto && !errorFuenteIdioma && !errorTaxones && !errorFaltaIdioma && !errorFaltaTexto) { try { //no hay errores y guardamos String titulo = ""; titulo = form.getTituloClasificacion(); if (titulo == null) { titulo = catalogadorAvSession.getTituloCategoria() != null ? catalogadorAvSession.getTituloCategoria() : "1"; } int posiTitu = Integer.parseInt(titulo) - 1; //Obtnemos los terminos de los ids seleccionados en todos los combos dameTerminoId("en"); //para guardar es en ingles // Guardamos PROPOSITO (RAZON) SourceValueVO proposito = new SourceValueVO(); proposito.setSource(AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos")); //source proposito.setValor(razon != null ? razon : ""); //Tengo q recoger su nombre dameId clasificacionG.setProposito(proposito); //RUTAS TAXONOMICAS //volvemos a guardar las rutas q ya estan traducidas ejm idioma --> es en vez de 5.1.1 //Aadimos los cambios para que no cargue las etiquetas vacas ArrayList arrayRutas = new ArrayList(); if (rutasTaxonomicas != null && rutasTaxonomicas.length > 0) { for (int i = 0; i < rutasTaxonomicas.length; i++) { FuenteVO fuente = rutasTaxonomicas[i].getFuente(); if (fuente != null && fuente.getTextos() != null && fuente.getTextos().length > 0) { // comprobamos que si es la ultima ruta taxonomica tenga taxones asociados si no es asi // quiere decir que tenemos los combos y no guardamos esos valores pues no hay taxones if (i != rutasTaxonomicas.length - 1 || (i == rutasTaxonomicas.length - 1 && tieneTaxonNoVacio())) { LangStringVO[] langFuente = fuente.getTextos(); for (int j = 0; j < langFuente.length; j++) { String langIdioma = langFuente[j].getIdioma(); langFuente[j].setIdioma(langIdioma); String langTexto = langFuente[j].getTexto(); if ((langTexto == null || langTexto.equals(""))) { fuente = null; } } } else fuente = null; } else { fuente = null; } rutasTaxonomicas[i].setFuente(fuente); TaxonVO[] taxones = rutasTaxonomicas[i].getTaxones(); ArrayList arrayTaxo = new ArrayList(); if (taxones != null && taxones.length > 0) { for (int j = 0; j < taxones.length; j++) { EntryVO entry = taxones[j].getEntry(); if (entry != null && entry.getTextos() != null && entry.getTextos().length > 0) { LangStringVO[] entryTex = entry.getTextos(); for (int k = 0; k < entryTex.length; k++) { String idiomaEntry = entryTex[k].getIdioma(); entryTex[k].setIdioma(idiomaEntry); String textoEntry = entryTex[k].getTexto(); if ((idiomaEntry == null || idiomaEntry.equals("") && (textoEntry == null || textoEntry.equals("")))) { entry = null; } } } else { entry = null; } IdVO id = taxones[j].getId(); String textoId = id.getTexto(); if (textoId == null || textoId.equals("")) id = null; if (id != null && textoId != null && !textoId.equals("")) { LangStringVO[] lang = null; entry = taxones[j].getEntry(); if (entry != null && entry.getTextos() != null && entry.getTextos().length > 0) { LangStringVO[] entryTex = entry.getTextos(); ArrayList arrayEntry = new ArrayList(); for (int k = 0; k < entryTex.length; k++) { String textoEntry = entryTex[k].getTexto(); if (textoEntry != null && !textoEntry.equals("")) { arrayEntry.add(entryTex[k]); } } lang = (LangStringVO[]) arrayEntry .toArray(new LangStringVO[arrayEntry.size()]); entry.setTextos(lang); } else { entry = null; } } if (entry == null && id == null) { taxones[j] = null; } if (taxones[j] != null) arrayTaxo.add(taxones[j]); } } if (arrayTaxo != null && arrayTaxo.size() > 0) { taxones = (TaxonVO[]) arrayTaxo.toArray(new TaxonVO[arrayTaxo.size()]); } else { taxones = new TaxonVO[0]; } rutasTaxonomicas[i].setTaxones(taxones); if (rutasTaxonomicas[i].getFuente() == null && (rutasTaxonomicas[i].getTaxones() == null || rutasTaxonomicas[i].getTaxones().length == 0)) rutasTaxonomicas[i] = null; if (rutasTaxonomicas[i] != null) arrayRutas.add(rutasTaxonomicas[i]); } if (arrayRutas != null && arrayRutas.size() > 0) { rutasTaxonomicas = (RutaTaxonomicaVO[]) arrayRutas .toArray(new RutaTaxonomicaVO[arrayRutas.size()]); } else { rutasTaxonomicas = null; } } else rutasTaxonomicas = null; clasificacionG.setRutasTaxonomicas(rutasTaxonomicas); if (clasificacionG.getDescripcion().getTextos() == null && clasificacionG.getProposito().getValor().equals("") && clasificacionG.getPalabrasClave() == null && clasificacionG.getRutasTaxonomicas() == null) clasificacionG = null; if (catalogadorAvSession.getMDSesion() == null) { //tenemos que crearnos un LomAvanzadoVO LomAvanzadoVO lomNew = new LomAvanzadoVO(); AvClassificationVO[] clasificaciones = null; ArrayList arrClasi = new ArrayList(); arrClasi.add(clasificacionG); clasificaciones = (AvClassificationVO[]) arrClasi .toArray(new AvClassificationVO[arrClasi.size()]); lomNew.setClasificaciones(clasificaciones); catalogadorAvSession.setMDSesion(lomNew); } else if (catalogadorAvSession.getMDSesion().getClasificaciones() == null) { //no hay ninguna clasificacion if (clasificacionG != null) { AvClassificationVO[] clasificaciones = null; ArrayList arrClasi = new ArrayList(); arrClasi.add(clasificacionG); clasificaciones = (AvClassificationVO[]) arrClasi .toArray(new AvClassificationVO[arrClasi.size()]); catalogadorAvSession.getMDSesion().setClasificaciones(clasificaciones); } } else { //tenemos que buscar la clasificacion AvClassificationVO[] clasificaciones = catalogadorAvSession.getMDSesion().getClasificaciones(); if (clasificaciones.length == posiTitu)//GUARDAR CUANDO HEMOS PULSADO BOTON CREAR { ArrayList listaClasi = new ArrayList(); for (int i = 0; i < clasificaciones.length; i++) listaClasi.add(clasificaciones[i]); if (clasificacionG != null) { listaClasi.add(clasificacionG); } AvClassificationVO[] clasificacionesAux = (AvClassificationVO[]) listaClasi .toArray(new AvClassificationVO[0]); catalogadorAvSession.getMDSesion().setClasificaciones(clasificacionesAux); } else //boton modificar { ArrayList listaClasi = new ArrayList(); for (int i = 0; i < clasificaciones.length; i++) { if (posiTitu == i) { if (clasificacionG != null) listaClasi.add(clasificacionG); } else listaClasi.add(clasificaciones[i]); } AvClassificationVO[] clasificacionesAux = (AvClassificationVO[]) listaClasi .toArray(new AvClassificationVO[0]); catalogadorAvSession.getMDSesion().setClasificaciones(clasificacionesAux); } // if ((posiTitu>=0) && (posiTitu<clasificaciones.length)) { // clasificaciones[posiTitu]=clasificacionG; // catalogadorAvSession.getMDSesion().setClasificaciones(clasificaciones); // // }else if (posiTitu>= clasificaciones.length) { //si es uno nuevo //// tenemos que crearlo al final // int newTam=clasificaciones.length +1; // AvClassificationVO[] clasiAux = new AvClassificationVO[newTam]; // for(int i = 0; i<clasificaciones.length;i++) // clasiAux[i]=clasificaciones[i]; // clasiAux[newTam-1]= clasificacionG;//clasificacion a guardar // catalogadorAvSession.getMDSesion().setClasificaciones(clasiAux); // } } // al final del todo inicializamos setClasificacionAux if (catalogadorAvSession != null) catalogadorAvSession.setClasificacionAux(null); //inicializado } catch (Exception e) { logger.error( "Error en catalogadorWeb, categoria DetalleClasificacion, metodo guardarMetadatos " + e); throw new java.lang.Exception("detalle.clasificacion", e); } } else { //lanzamos errores de validacion if (errorTaxones) { throw new ValidatorException("{detalleclasi.error.taxones}"); } else if ((errorFaltaIdioma && errorFaltaTexto) || (errorFuenteTexto && errorFuenteIdioma)) throw new ValidatorException("{general.error.idioma_texto}"); else if ((!errorFaltaIdioma && errorFaltaTexto) || (!errorFuenteIdioma && errorFuenteTexto)) throw new ValidatorException("{general.error.texto}"); else throw new ValidatorException("{general.error.idioma}"); } if (is != null) { is.close(); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.tecnica.TecnicaControllerImpl.java
/** * @see es.pode.catalogadorWeb.presentacion.categoriasAvanzado.tecnica.TecnicaController#guardarTecnica(org.apache.struts.action.ActionMapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.tecnica.GuardarTecnicaForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */// w ww. j av a2 s . c om public final void guardarTecnica(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.tecnica.GuardarTecnicaForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorNoNumero = false; boolean errorSegundos = false; boolean tamNum = true; CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); LomAvanzadoVO auxAvanzado = null; TamanioVO tamAux = null; PautasInstalacionVO pautas = null; OtrosRequisitosVO otros = null; DuracionVO duracionVO = null; try { auxAvanzado = new LomAvanzadoVO(); AvTechnicalVO tecnica = new AvTechnicalVO(); auxAvanzado.setTechnical(tecnica); String source = AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos"); String idiomaLdap = ((Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)) .getLanguage(); String usuario = LdapUserDetailsUtils.getUsuario(); //String usuario="empaquetador"; String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(idiomaLdap); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); // metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); Object valor = request.getSession().getAttribute("form"); //Obtenemos la longitudes de los VOs, que pasamos a cambioFormulario para que se obtengan del request los cambios que hemos hecho //Pues en el form que nos viene como parametro no los guarda. int longitudFormatos = 0; int longitudTamanio = 1; int longitudLocalizaciones = 0; int longitudRequerimientos = 0; int[] longitudAgregadores = new int[0]; int longitudInstalaciones = 0; int longitudMasRequerimientos = 0; int longitudDescDuracion = 0; if (valor instanceof TecnicaFormImpl) { TecnicaFormImpl valorTec = ((TecnicaFormImpl) valor); Object[] req = valorTec.getRequerimientoAsArray(); longitudAgregadores = new int[req.length]; for (int i = 0; i < req.length; i++) { longitudAgregadores[i] = ((RequisitoVO) (req[i])).getAgregadoresOR().length; } longitudRequerimientos = req.length; longitudFormatos = ((TecnicaFormImpl) valor).getFormatosAsArray().length; longitudLocalizaciones = ((TecnicaFormImpl) valor).getLocalizacionAsArray().length; longitudInstalaciones = (((PautasInstalacionVO[]) ((TecnicaFormImpl) valor) .getDescripcionInstalacionAsArray())[0]).getTextos().length; longitudMasRequerimientos = (((OtrosRequisitosVO[]) ((TecnicaFormImpl) valor) .getDescripcionRequerimientosAsArray())[0]).getTextos().length; longitudDescDuracion = ((DescripcionVO[]) ((TecnicaFormImpl) valor) .getDescripcionDuracionAsArray())[0].getTextos().length; } else if (valor instanceof TecnicaFormAccionSubmitFormImpl) { TecnicaFormAccionSubmitFormImpl valorTec = ((TecnicaFormAccionSubmitFormImpl) valor); Object[] req = valorTec.getRequerimientoAsArray(); longitudAgregadores = new int[req.length]; for (int i = 0; i < req.length; i++) { longitudAgregadores[i] = ((RequisitoVO) (req[i])).getAgregadoresOR().length; } longitudRequerimientos = req.length; longitudFormatos = ((TecnicaFormAccionSubmitFormImpl) valor).getFormatosAsArray().length; longitudLocalizaciones = ((TecnicaFormAccionSubmitFormImpl) valor).getLocalizacionAsArray().length; longitudInstalaciones = (((PautasInstalacionVO[]) ((TecnicaFormAccionSubmitFormImpl) valor) .getDescripcionInstalacionAsArray())[0]).getTextos().length; longitudMasRequerimientos = (((OtrosRequisitosVO[]) ((TecnicaFormAccionSubmitFormImpl) valor) .getDescripcionRequerimientosAsArray())[0]).getTextos().length; longitudDescDuracion = ((DescripcionVO[]) ((TecnicaFormAccionSubmitFormImpl) valor) .getDescripcionDuracionAsArray())[0].getTextos().length; } else if (valor instanceof TecnicaValidaVolverFormImpl) { TecnicaValidaVolverFormImpl valorTec = ((TecnicaValidaVolverFormImpl) valor); Object[] req = valorTec.getRequerimientoAsArray(); longitudAgregadores = new int[req.length]; for (int i = 0; i < req.length; i++) { longitudAgregadores[i] = ((RequisitoVO) (req[i])).getAgregadoresOR().length; } longitudRequerimientos = req.length; longitudFormatos = ((TecnicaValidaVolverFormImpl) valor).getFormatosAsArray().length; longitudLocalizaciones = ((TecnicaValidaVolverFormImpl) valor).getLocalizacionAsArray().length; longitudInstalaciones = (((PautasInstalacionVO[]) ((TecnicaValidaVolverFormImpl) valor) .getDescripcionInstalacionAsArray())[0]).getTextos().length; longitudMasRequerimientos = (((OtrosRequisitosVO[]) ((TecnicaValidaVolverFormImpl) valor) .getDescripcionRequerimientosAsArray())[0]).getTextos().length; longitudDescDuracion = ((DescripcionVO[]) ((TecnicaValidaVolverFormImpl) valor) .getDescripcionDuracionAsArray())[0].getTextos().length; } else if (valor instanceof TecnicaNoValidaVolverFormImpl) { TecnicaNoValidaVolverFormImpl valorTec = ((TecnicaNoValidaVolverFormImpl) valor); Object[] req = valorTec.getRequerimientoAsArray(); longitudAgregadores = new int[req.length]; for (int i = 0; i < req.length; i++) { longitudAgregadores[i] = ((RequisitoVO) (req[i])).getAgregadoresOR().length; } longitudRequerimientos = req.length; longitudFormatos = ((TecnicaNoValidaVolverFormImpl) valor).getFormatosAsArray().length; longitudLocalizaciones = ((TecnicaNoValidaVolverFormImpl) valor).getLocalizacionAsArray().length; longitudInstalaciones = (((PautasInstalacionVO[]) ((TecnicaNoValidaVolverFormImpl) valor) .getDescripcionInstalacionAsArray())[0]).getTextos().length; longitudMasRequerimientos = (((OtrosRequisitosVO[]) ((TecnicaNoValidaVolverFormImpl) valor) .getDescripcionRequerimientosAsArray())[0]).getTextos().length; longitudDescDuracion = ((DescripcionVO[]) ((TecnicaNoValidaVolverFormImpl) valor) .getDescripcionDuracionAsArray())[0].getTextos().length; } cambioFormulario(request, longitudFormatos, longitudLocalizaciones, longitudRequerimientos, longitudAgregadores, longitudInstalaciones, longitudMasRequerimientos, longitudDescDuracion); // Guardamos los cambios en el form obtenido de request.getSession.getAttribute("form") para que en caso de faltar //algun idioma o texto sin rellenar cargue el formulario con lo cambio y no perdamos todo lo modificado hasta ese //momento, si no lo hicieramos cargara el formulario anterior. //FORMATOS FormatoVO[] formatosAux = new FormatoVO[formatos.length]; for (int i = 0; i < formatos.length; i++) { FormatoVO auxFormato = new FormatoVO(); auxFormato.setTexto(formatos[i].getTexto().trim()); formatosAux[i] = auxFormato; } //TAMAO tamAux = new TamanioVO(); if (!tamao.equals("")) tamAux.setTexto(tamao); else tamAux = null; //tamao=tamao; //LOCALIZACIONES LocalizacionVO[] localizacionesAux = new LocalizacionVO[localizaciones.length]; for (int i = 0; i < localizaciones.length; i++) { LocalizacionVO auxLocalizacion = new LocalizacionVO(); auxLocalizacion.setTexto(localizaciones[i].getTexto().trim()); localizacionesAux[i] = auxLocalizacion; } //REQUERIMIENTOS RequisitoVO[] requisitoAux = new RequisitoVO[requisitos.length]; for (int i = 0; i < requisitos.length; i++) { RequisitoVO auxRequisito = new RequisitoVO(); RequisitoVO requisito = requisitos[i]; AgregadorORVO[] agrega = requisito.getAgregadoresOR(); AgregadorORVO[] agregadoresAux = new AgregadorORVO[agrega.length]; for (int j = 0; j < agrega.length; j++) { AgregadorORVO auxAgregador = new AgregadorORVO(); SourceValueVO nom = new SourceValueVO(); nom.setSource(agrega[j].getNombre().getSource()); nom.setValor(agrega[j].getNombre().getValor()); auxAgregador.setNombre(nom); SourceValueVO tip = new SourceValueVO(); tip.setSource(agrega[j].getTipo().getSource()); tip.setValor(agrega[j].getTipo().getValor()); auxAgregador.setTipo(tip); VersionMaxVO max = new VersionMaxVO(); max.setTexto(agrega[j].getVersionMax().getTexto().trim()); auxAgregador.setVersionMax(max); VersionMinVO min = new VersionMinVO(); min.setTexto(agrega[j].getVersionMin().getTexto().trim()); auxAgregador.setVersionMin(min); agregadoresAux[j] = auxAgregador; } auxRequisito.setAgregadoresOR(agregadoresAux); requisitoAux[i] = auxRequisito; } //NOTAS DE INSTALACION PautasInstalacionVO[] pautasAux = new PautasInstalacionVO[1]; LangStringVO[] langPautaAux = new LangStringVO[notasDeInstalacion[0].getTextos().length]; for (int i = 0; i < notasDeInstalacion[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(notasDeInstalacion[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(notasDeInstalacion[0].getTextos()[i].getTexto().trim()); langPautaAux[i] = nuevoLang; } PautasInstalacionVO pautaAux = new PautasInstalacionVO(); pautaAux.setTextos(langPautaAux); pautasAux[0] = pautaAux; //MAS REQUERIMIENTOS OtrosRequisitosVO[] otrosAux = new OtrosRequisitosVO[1]; LangStringVO[] langOtroAux = new LangStringVO[masRequisitos[0].getTextos().length]; for (int i = 0; i < masRequisitos[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(masRequisitos[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(masRequisitos[0].getTextos()[i].getTexto().trim()); langOtroAux[i] = nuevoLang; } OtrosRequisitosVO otroAux = new OtrosRequisitosVO(); otroAux.setTextos(langOtroAux); otrosAux[0] = otroAux; //DURACION DescripcionVO[] descAux = new DescripcionVO[1]; LangStringVO[] langDescAux = new LangStringVO[duracionDesc[0].getTextos().length]; for (int i = 0; i < duracionDesc[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(duracionDesc[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(duracionDesc[0].getTextos()[i].getTexto().trim()); langDescAux[i] = nuevoLang; } DescripcionVO otroDesc = new DescripcionVO(); otroDesc.setTextos(langDescAux); descAux[0] = otroDesc; if (valor instanceof TecnicaFormImpl) { ((TecnicaFormImpl) valor).setFormatosAsArray(formatosAux); ((TecnicaFormImpl) valor).setTamanio(tamao); ((TecnicaFormImpl) valor).setLocalizacionAsArray(localizacionesAux); ((TecnicaFormImpl) valor).setRequerimientoAsArray(requisitoAux); ((TecnicaFormImpl) valor).setDescripcionInstalacionAsArray(pautasAux); ((TecnicaFormImpl) valor).setDescripcionRequerimientosAsArray(otrosAux); ((TecnicaFormImpl) valor).setDescripcionDuracionAsArray(descAux); ((TecnicaFormImpl) valor).setAnyo(anyos); ((TecnicaFormImpl) valor).setMes(meses); ((TecnicaFormImpl) valor).setDia(dias); ((TecnicaFormImpl) valor).setHora(horas); ((TecnicaFormImpl) valor).setMinutos(minutos); ((TecnicaFormImpl) valor).setSegundosP1(segundosP1); ((TecnicaFormImpl) valor).setSegundosP2(segundosP2); } else if (valor instanceof TecnicaFormAccionSubmitFormImpl) { ((TecnicaFormAccionSubmitFormImpl) valor).setFormatosAsArray(formatosAux); ((TecnicaFormAccionSubmitFormImpl) valor).setTamanio(tamao); ((TecnicaFormAccionSubmitFormImpl) valor).setLocalizacionAsArray(localizacionesAux); ((TecnicaFormAccionSubmitFormImpl) valor).setRequerimientoAsArray(requisitoAux); ((TecnicaFormAccionSubmitFormImpl) valor).setDescripcionInstalacionAsArray(pautasAux); ((TecnicaFormAccionSubmitFormImpl) valor).setDescripcionRequerimientosAsArray(otrosAux); ((TecnicaFormAccionSubmitFormImpl) valor).setDescripcionDuracionAsArray(descAux); ((TecnicaFormAccionSubmitFormImpl) valor).setAnyo(anyos); ((TecnicaFormAccionSubmitFormImpl) valor).setMes(meses); ((TecnicaFormAccionSubmitFormImpl) valor).setDia(dias); ((TecnicaFormAccionSubmitFormImpl) valor).setHora(horas); ((TecnicaFormAccionSubmitFormImpl) valor).setMinutos(minutos); ((TecnicaFormAccionSubmitFormImpl) valor).setSegundosP1(segundosP1); ((TecnicaFormAccionSubmitFormImpl) valor).setSegundosP2(segundosP2); } else if (valor instanceof TecnicaValidaVolverFormImpl) { ((TecnicaValidaVolverFormImpl) valor).setFormatosAsArray(formatosAux); ((TecnicaValidaVolverFormImpl) valor).setTamanio(tamao); ((TecnicaValidaVolverFormImpl) valor).setLocalizacionAsArray(localizacionesAux); ((TecnicaValidaVolverFormImpl) valor).setRequerimientoAsArray(requisitoAux); ((TecnicaValidaVolverFormImpl) valor).setDescripcionInstalacionAsArray(pautasAux); ((TecnicaValidaVolverFormImpl) valor).setDescripcionRequerimientosAsArray(otrosAux); ((TecnicaValidaVolverFormImpl) valor).setDescripcionDuracionAsArray(descAux); ((TecnicaValidaVolverFormImpl) valor).setAnyo(anyos); ((TecnicaValidaVolverFormImpl) valor).setMes(meses); ((TecnicaValidaVolverFormImpl) valor).setDia(dias); ((TecnicaValidaVolverFormImpl) valor).setHora(horas); ((TecnicaValidaVolverFormImpl) valor).setMinutos(minutos); ((TecnicaValidaVolverFormImpl) valor).setSegundosP1(segundosP1); ((TecnicaValidaVolverFormImpl) valor).setSegundosP2(segundosP2); } else if (valor instanceof TecnicaNoValidaVolverFormImpl) { ((TecnicaNoValidaVolverFormImpl) valor).setFormatosAsArray(formatosAux); ((TecnicaNoValidaVolverFormImpl) valor).setTamanio(tamao); ((TecnicaNoValidaVolverFormImpl) valor).setLocalizacionAsArray(localizacionesAux); ((TecnicaNoValidaVolverFormImpl) valor).setRequerimientoAsArray(requisitoAux); ((TecnicaNoValidaVolverFormImpl) valor).setDescripcionInstalacionAsArray(pautasAux); ((TecnicaNoValidaVolverFormImpl) valor).setDescripcionRequerimientosAsArray(otrosAux); ((TecnicaNoValidaVolverFormImpl) valor).setDescripcionDuracionAsArray(descAux); ((TecnicaNoValidaVolverFormImpl) valor).setAnyo(anyos); ((TecnicaNoValidaVolverFormImpl) valor).setMes(meses); ((TecnicaNoValidaVolverFormImpl) valor).setDia(dias); ((TecnicaNoValidaVolverFormImpl) valor).setHora(horas); ((TecnicaNoValidaVolverFormImpl) valor).setMinutos(minutos); ((TecnicaNoValidaVolverFormImpl) valor).setSegundosP1(segundosP1); ((TecnicaNoValidaVolverFormImpl) valor).setSegundosP2(segundosP2); } // Obtnemos los terminos de los ids seleccionados en todos los combos, y los guarda en los VO dameTerminoId(); // Comprobamos si los campos ha sido rellenados adecuadamente //FORMATOS if ((formatos != null) && (formatos.length != 0)) { ArrayList lista = new ArrayList(); for (int i = 0; i < formatos.length; i++) { FormatoVO forma = (FormatoVO) formatos[i]; if ((forma != null) && (!forma.getTexto().equals(""))) { FormatoVO formatoAux = new FormatoVO(); formatoAux.setTexto(forma.getTexto().trim()); lista.add(formatoAux); } } formatos = (FormatoVO[]) lista.toArray(new FormatoVO[lista.size()]); if (formatos.length == 0) formatos = null; } else formatos = null; auxAvanzado.getTechnical().setFormatos(formatos); //TAMAO?? auxAvanzado.getTechnical().setTamanio(tamAux); //LOCALIZACION if ((localizaciones != null) && (localizaciones.length != 0)) { ArrayList lista = new ArrayList(); for (int i = 0; i < localizaciones.length; i++) { LocalizacionVO loca = (LocalizacionVO) localizaciones[i]; if ((loca != null) && (!loca.getTexto().equals(""))) { LocalizacionVO localizacionAux = new LocalizacionVO(); localizacionAux.setTexto(loca.getTexto().trim()); lista.add(localizacionAux); } } localizaciones = (LocalizacionVO[]) lista.toArray(new LocalizacionVO[lista.size()]); if (localizaciones.length == 0) localizaciones = null; } else localizaciones = null; auxAvanzado.getTechnical().setLocalizaciones(localizaciones); //REQUERIMIENTOS if ((requisitos != null) && (requisitos.length != 0)) { ArrayList lista = new ArrayList(); AgregadorORVO[] agregadores = requisitos[0].getAgregadoresOR(); if (requisitos.length == 1 && agregadores.length == 1 && agregadores[0].getNombre().getValor().equals("") && agregadores[0].getTipo().getValor().equals("") && agregadores[0].getVersionMax().getTexto().equals("") && agregadores[0].getVersionMin().getTexto().equals("")) { requisitos = null; } else { for (int i = 0; i < requisitos.length; i++) { if (requisitos != null) { ArrayList listAgr = new ArrayList(); RequisitoVO lRequi = (RequisitoVO) requisitos[i]; RequisitoVO lRequisitos = new RequisitoVO(); for (int j = 0; j < lRequi.getAgregadoresOR().length; j++) { AgregadorORVO agrega = lRequi.getAgregadoresOR()[j]; AgregadorORVO lAgrega = new AgregadorORVO(); String name = agrega.getNombre().getValor(); String type = agrega.getTipo().getValor(); String min = agrega.getVersionMin().getTexto(); String max = agrega.getVersionMax().getTexto(); if (((name != null) && (!name.equals(""))) || ((type != null) && (!type.equals(""))) || ((min != null) && (!min.trim().equals(""))) || ((max != null) && (!max.trim().equals("")))) { SourceValueVO nombre = new SourceValueVO(); nombre.setSource(source); nombre.setValor(name); lAgrega.setNombre(nombre); SourceValueVO tipo = new SourceValueVO(); tipo.setSource(source); tipo.setValor(type); lAgrega.setTipo(tipo); VersionMaxVO maxi = new VersionMaxVO(); maxi.setTexto(max.trim()); lAgrega.setVersionMax(maxi); VersionMinVO mini = new VersionMinVO(); mini.setTexto(min.trim()); lAgrega.setVersionMin(mini); listAgr.add(lAgrega); } } if (listAgr.size() != 0) { AgregadorORVO[] agregas = (AgregadorORVO[]) listAgr .toArray(new AgregadorORVO[listAgr.size()]); lRequisitos.setAgregadoresOR(agregas); lista.add(lRequisitos); } } } if (lista.size() == 0) requisitos = null; else requisitos = (RequisitoVO[]) lista.toArray(new RequisitoVO[lista.size()]); } } else requisitos = null; auxAvanzado.getTechnical().setRequisitos(requisitos); //NOTAS DE INSTALACION pautas = new PautasInstalacionVO(); if (notasDeInstalacion != null && notasDeInstalacion.length != 0) { PautasInstalacionVO pauta = (PautasInstalacionVO) notasDeInstalacion[0]; LangStringVO[] textos = pauta.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lPat = (LangStringVO) textos[j]; if (lPat != null) { LangStringVO lLang = new LangStringVO(); String idioma = lPat.getIdioma(); String texto = lPat.getTexto().trim(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto); lista.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) pautas = null; else pautas.setTextos(lLangS); } else pautas = null; auxAvanzado.getTechnical().setPautasInstalacion(pautas); //MAS REQUERIMIENTOS otros = new OtrosRequisitosVO(); if (masRequisitos != null && masRequisitos.length != 0) { OtrosRequisitosVO otro = (OtrosRequisitosVO) masRequisitos[0]; LangStringVO[] textos = otro.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lOtro = (LangStringVO) textos[j]; if (lOtro != null) { LangStringVO lLang = new LangStringVO(); String idioma = lOtro.getIdioma(); String texto = lOtro.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto.trim()); lista.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) otros = null; else otros.setTextos(lLangS); } else otros = null; auxAvanzado.getTechnical().setOtrosRequisitos(otros); //Duracion DescripcionVO duras = new DescripcionVO(); if (duracionDesc != null && duracionDesc.length != 0) { DescripcionVO descD = (DescripcionVO) duracionDesc[0]; LangStringVO[] textos = descD.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lOtro = (LangStringVO) textos[j]; if (lOtro != null) { LangStringVO lLang = new LangStringVO(); String idioma = lOtro.getIdioma(); String texto = lOtro.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto.trim()); lista.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) duras = null; else duras.setTextos(lLangS); } else duras = null; anyos = anyos.trim(); meses = meses.trim(); dias = dias.trim(); horas = horas.trim(); minutos = minutos.trim(); segundosP1 = segundosP1.trim(); segundosP2 = segundosP2.trim(); form.setAnyo(anyos); form.setMes(meses); form.setDia(dias); form.setHora(horas); form.setMinutos(minutos); form.setSegundosP1(segundosP1); form.setSegundosP2(segundosP2); duracionVO = new DuracionVO(); duracionVO.setDescripcion(duras); String duration = ""; if (!dias.equals("") || !meses.equals("") || !anyos.equals("")) { duration = "P"; if (!anyos.equals("")) if (!anyos.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + anyos + "Y"; if (!meses.equals("")) if (!meses.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + meses + "M"; if (!dias.equals("")) { if (!dias.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + dias + "D"; } } if (!horas.equals("") || !minutos.equals("") || !segundosP1.equals("") || !segundosP2.equals("")) { if (duration.equals("")) duration = "PT"; else duration = duration + "T"; if (!horas.equals("")) if (!horas.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + horas + "H"; if (!minutos.equals("")) if (!minutos.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + minutos + "M"; if (!segundosP1.equals("")) if (!segundosP1.matches("\\d{1,}")) errorNoNumero = true; else if (segundosP2.equals("")) duration = duration + segundosP1 + "S"; else if (!segundosP2.matches("\\d{1,}")) errorNoNumero = true; else duration = duration + segundosP1 + "." + segundosP2 + "S"; if (segundosP1.equals("") && !segundosP2.equals("")) errorSegundos = true; } if (duration.equals("")) duration = null; duracionVO.setDuracion(duration); if ((duracionVO.getDescripcion() == null) && (duracionVO.getDuracion() == null)) { duracionVO = null; } auxAvanzado.getTechnical().setDuracion(duracionVO); //TAMAO if (tamao != null && !tamao.equals("")) { try { Long bigTamao = new Long(tamao); if (bigTamao.intValue() < 0) { tamNum = false; } } catch (Exception e) { tamNum = false; } } } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new java.lang.Exception("tecnica", ad); } catch (Exception e) { logger.error("Error en catalogadorWeb, categora Tecnica, metodo guardarTecnica " + e); throw new java.lang.Exception("tecnica", e); } if (!errorFaltaIdioma && !errorFaltaTexto && !errorNoNumero && !errorSegundos && tamNum) { try { // Cargamos el objeto de sesion if (catalogadorAvSession.getMDSesion() == null) { catalogadorAvSession.setMDSesion(auxAvanzado); } else { if (formatos == null && tamAux == null && localizaciones == null && requisitos == null && pautas == null && otros == null && duracionVO == null) catalogadorAvSession.getMDSesion().setTechnical(null); else catalogadorAvSession.getMDSesion().setTechnical(auxAvanzado.getTechnical()); } } catch (Exception e) { logger.error("Error en catalogadorWeb, categora Tecnica, mtodo guardarTecnica " + e); throw new java.lang.Exception("tecnica", e); } } else { if (errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{tecnica.error.idioma_texto}"); else if (!errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{tecnica.error.texto}"); else if (errorFaltaIdioma && !errorFaltaTexto) throw new ValidatorException("{tecnica.error.idioma}"); else if (errorNoNumero) throw new ValidatorException("{tecnica.error.NoNumero}"); else if (errorSegundos) throw new ValidatorException("{tecnica.error.Segundos}"); else if (!tamNum) throw new ValidatorException("{tecnica.error.Tamaino}"); } }
From source file:es.pode.catalogadorWeb.presentacion.categoriasAvanzado.usoeducativo.detalleUsoEducativo.DetalleUsoEduControllerImpl.java
public final void guardarUsoEducativo(ActionMapping mapping, es.pode.catalogadorWeb.presentacion.categoriasAvanzado.usoeducativo.detalleUsoEducativo.GuardarUsoEducativoForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean errorFaltaIdioma = false; boolean errorFaltaTexto = false; boolean errorNoNumero = false; boolean errorSegundos = false; LomAvanzadoVO auxAvanzado = null;// w w w . j a v a2s. c o m AvEducationalVO educacion = null; AvEducationalVO[] arrayEducacion = null; CatalogadorAvSession catalogadorAvSession = this.getCatalogadorAvSession(request); try { auxAvanzado = new LomAvanzadoVO(); educacion = new AvEducationalVO(); arrayEducacion = new AvEducationalVO[1]; arrayEducacion[0] = educacion; auxAvanzado.setEducational(arrayEducacion); String source = AgregaPropertiesImpl.getInstance().getProperty("esquemaDeMetadatos"); String idiomaLdap = ((Locale) request.getSession().getAttribute(ConstantesAgrega.DEFAULT_LOCALE)) .getLanguage(); String usuario = LdapUserDetailsUtils.getUsuario(); //String usuario="empaquetador"; String identificador = request.getParameter("identificador"); if (identificador == null) { identificador = catalogadorAvSession.getIdentificador(); } String returnURL = request.getParameter("returnURL"); if (returnURL == null) returnURL = catalogadorAvSession.getReturnURL(); catalogadorAvSession.setIdioma(idiomaLdap); catalogadorAvSession.setIdentificador(identificador); catalogadorAvSession.setUsuario(usuario); // metemos en la sesion el parametro de vuelta al empaquetador catalogadorAvSession.setReturnURL(returnURL); Object valor = request.getSession().getAttribute("form"); //Obtenemos la longitudes de los VOs, que pasamos a cambioFormulario para que se obtengan del request los cambios que hemos hecho //Pues en el form que nos viene como parametro no los guarda. int longitudDescripciones = 0; int longitudIdiomas = 0; int longitudTipoRecurso = 0; int longitudRoles = 0; int longitudContextos = 0; int longitudProcesos = 0; int longitudTADesc = 0; int longitudRangos = 0; int[] longitudTextosDesc = new int[0]; int[] longitudTextosRangosEdad = new int[0]; if (valor instanceof DetalleUsoEduFormImpl) { DetalleUsoEduFormImpl formulario = ((DetalleUsoEduFormImpl) valor); Object[] desc = formulario.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } Object[] eTipica = formulario.getEdadTipicaAsArray(); longitudTextosRangosEdad = new int[eTipica.length]; for (int i = 0; i < eTipica.length; i++) { longitudTextosRangosEdad[i] = ((RangoEdadVO) eTipica[i]).getTextos().length; } longitudDescripciones = desc.length; longitudRangos = formulario.getEdadTipicaAsArray().length; longitudTipoRecurso = formulario.getTipoRecursoAsArray().length; longitudRoles = formulario.getRolUsuarioAsArray().length; longitudIdiomas = formulario.getIdiomasAsArray().length; longitudContextos = formulario.getContextoAsArray().length; longitudProcesos = formulario.getProcesoCognitivoAsArray().length; longitudTADesc = (((DescripcionVO[]) formulario.getTiempoApDescripcionAsArray())[0]) .getTextos().length; } else if (valor instanceof DetalleUsoEducativoSubmitFormImpl) { DetalleUsoEducativoSubmitFormImpl formulario = ((DetalleUsoEducativoSubmitFormImpl) valor); Object[] desc = formulario.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } Object[] eTipica = formulario.getEdadTipicaAsArray(); longitudTextosRangosEdad = new int[eTipica.length]; for (int i = 0; i < eTipica.length; i++) { longitudTextosRangosEdad[i] = ((RangoEdadVO) eTipica[i]).getTextos().length; } longitudDescripciones = desc.length; longitudRangos = formulario.getEdadTipicaAsArray().length; longitudTipoRecurso = formulario.getTipoRecursoAsArray().length; longitudRoles = formulario.getRolUsuarioAsArray().length; longitudIdiomas = formulario.getIdiomasAsArray().length; longitudContextos = formulario.getContextoAsArray().length; longitudProcesos = formulario.getProcesoCognitivoAsArray().length; longitudTADesc = (((DescripcionVO[]) formulario.getTiempoApDescripcionAsArray())[0]) .getTextos().length; } else if (valor instanceof UsoEducativoValidoVolverFormImpl) { UsoEducativoValidoVolverFormImpl formulario = ((UsoEducativoValidoVolverFormImpl) valor); Object[] desc = formulario.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } Object[] eTipica = formulario.getEdadTipicaAsArray(); longitudTextosRangosEdad = new int[eTipica.length]; for (int i = 0; i < eTipica.length; i++) { longitudTextosRangosEdad[i] = ((RangoEdadVO) eTipica[i]).getTextos().length; } longitudDescripciones = desc.length; longitudRangos = formulario.getEdadTipicaAsArray().length; longitudTipoRecurso = formulario.getTipoRecursoAsArray().length; longitudRoles = formulario.getRolUsuarioAsArray().length; longitudIdiomas = formulario.getIdiomasAsArray().length; longitudContextos = formulario.getContextoAsArray().length; longitudProcesos = formulario.getProcesoCognitivoAsArray().length; longitudTADesc = (((DescripcionVO[]) formulario.getTiempoApDescripcionAsArray())[0]) .getTextos().length; } else if (valor instanceof UsoEducativoNoValidoVolverFormImpl) { UsoEducativoNoValidoVolverFormImpl formulario = ((UsoEducativoNoValidoVolverFormImpl) valor); Object[] desc = formulario.getDescripcionesAsArray(); longitudTextosDesc = new int[desc.length]; for (int i = 0; i < desc.length; i++) { longitudTextosDesc[i] = ((DescripcionVO) (desc[i])).getTextos().length; } Object[] eTipica = formulario.getEdadTipicaAsArray(); longitudTextosRangosEdad = new int[eTipica.length]; for (int i = 0; i < eTipica.length; i++) { longitudTextosRangosEdad[i] = ((RangoEdadVO) eTipica[i]).getTextos().length; } longitudDescripciones = desc.length; longitudRangos = formulario.getEdadTipicaAsArray().length; longitudTipoRecurso = formulario.getTipoRecursoAsArray().length; longitudRoles = formulario.getRolUsuarioAsArray().length; longitudIdiomas = formulario.getIdiomasAsArray().length; longitudContextos = formulario.getContextoAsArray().length; longitudProcesos = formulario.getProcesoCognitivoAsArray().length; longitudTADesc = (((DescripcionVO[]) formulario.getTiempoApDescripcionAsArray())[0]) .getTextos().length; } //Recogemos los cambio del request mediante parametros cambioFormulario(request, longitudTextosDesc, longitudTextosRangosEdad, longitudDescripciones, longitudRangos, longitudIdiomas, longitudTipoRecurso, longitudRoles, longitudContextos, longitudProcesos, longitudTADesc, source); //Guardamos los cambios en el form obtenido de request.getSession.getAttribute("form") para que en caso de faltar //algun idioma o texto sin rellenar cargue el formulario con lo cambio y no perdamos todo lo modificado hasta ese //momento, si no lo hicieramos cargara el formulario anterior. //IDIOMAS IdiomaVO[] idiomasAux = new IdiomaVO[idiomas.length]; for (int i = 0; i < idiomas.length; i++) { IdiomaVO auxIdioma = new IdiomaVO(); auxIdioma.setTexto(idiomas[i].getTexto()); idiomasAux[i] = auxIdioma; } //TIPOS RECURSOS SourceValueVO[] tiposRecursoAux = new SourceValueVO[tiposRecurso.length]; for (int i = 0; i < tiposRecurso.length; i++) { SourceValueVO auxTipoRecurso = new SourceValueVO(); auxTipoRecurso.setValor(tiposRecurso[i].getValor()); auxTipoRecurso.setSource(source); tiposRecursoAux[i] = auxTipoRecurso; } //ROLES O DESTINATARIOS SourceValueVO[] rolesAux = new SourceValueVO[roles.length]; for (int i = 0; i < roles.length; i++) { SourceValueVO auxRoles = new SourceValueVO(); auxRoles.setValor(roles[i].getValor()); auxRoles.setSource(source); rolesAux[i] = auxRoles; } //CONTEXTOS SourceValueVO[] contextosAux = new SourceValueVO[contextos.length]; for (int i = 0; i < contextos.length; i++) { SourceValueVO auxContexto = new SourceValueVO(); auxContexto.setValor(contextos[i].getValor()); auxContexto.setSource(source); contextosAux[i] = auxContexto; } //PROCESOS COGNITIVOS SourceValueVO[] procesosAux = new SourceValueVO[procesosCognitivos.length]; for (int i = 0; i < procesosCognitivos.length; i++) { SourceValueVO auxProceso = new SourceValueVO(); auxProceso.setValor(procesosCognitivos[i].getValor()); auxProceso.setSource(source); procesosAux[i] = auxProceso; } //DESCRIPCION TIEMPO APRENDIZAJE DescripcionVO[] taDescripcionAux = new DescripcionVO[1]; LangStringVO[] langTADescAux = new LangStringVO[tiempoApDescripcion[0].getTextos().length]; for (int i = 0; i < tiempoApDescripcion[0].getTextos().length; i++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(tiempoApDescripcion[0].getTextos()[i].getIdioma()); nuevoLang.setTexto(tiempoApDescripcion[0].getTextos()[i].getTexto().trim()); langTADescAux[i] = nuevoLang; } DescripcionVO taDescAux = new DescripcionVO(); taDescAux.setTextos(langTADescAux); taDescripcionAux[0] = taDescAux; //DESCRIPCIONES DescripcionVO[] descripcionesAux = new DescripcionVO[descripciones.length]; for (int i = 0; i < descripciones.length; i++) { DescripcionVO descripAux = new DescripcionVO(); LangStringVO[] langDescrip = descripciones[i].getTextos(); LangStringVO[] langDescripAux = new LangStringVO[langDescrip.length]; for (int j = 0; j < langDescrip.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langDescrip[j].getIdioma()); nuevoLang.setTexto(langDescrip[j].getTexto().trim()); langDescripAux[j] = nuevoLang; } descripAux.setTextos(langDescripAux); descripcionesAux[i] = descripAux; } //RANGOS EDAD RangoEdadVO[] rangosEdadAux = new RangoEdadVO[rangosEdad.length]; for (int i = 0; i < rangosEdad.length; i++) { RangoEdadVO rEdadAux = new RangoEdadVO(); LangStringVO[] langREdad = rangosEdad[i].getTextos(); LangStringVO[] langREdadAux = new LangStringVO[langREdad.length]; for (int j = 0; j < langREdad.length; j++) { LangStringVO nuevoLang = new LangStringVO(); nuevoLang.setIdioma(langREdad[j].getIdioma()); nuevoLang.setTexto(langREdad[j].getTexto().trim()); langREdadAux[j] = nuevoLang; } rEdadAux.setTextos(langREdadAux); rangosEdadAux[i] = rEdadAux; } if (valor instanceof DetalleUsoEduFormImpl) { DetalleUsoEduFormImpl formulario = (DetalleUsoEduFormImpl) valor; formulario.setIdiomasAsArray(idiomasAux); formulario.setTiempoApDescripcionAsArray(taDescripcionAux); formulario.setDescripcionesAsArray(descripcionesAux); formulario.setEdadTipicaAsArray(rangosEdadAux); formulario.setTipoRecursoAsArray(tiposRecursoAux); formulario.setRolUsuarioAsArray(rolesAux); formulario.setContextoAsArray(contextosAux); formulario.setProcesoCognitivoAsArray(procesosAux); formulario.setAnyo(anyos); formulario.setMes(meses); formulario.setDia(dias); formulario.setHora(horas); formulario.setMinutos(minutos); formulario.setSegundosP1(segundosP1); formulario.setSegundosP2(segundosP2); } else if (valor instanceof DetalleUsoEducativoSubmitFormImpl) { DetalleUsoEducativoSubmitFormImpl formulario = (DetalleUsoEducativoSubmitFormImpl) valor; formulario.setIdiomasAsArray(idiomasAux); formulario.setTiempoApDescripcionAsArray(taDescripcionAux); formulario.setDescripcionesAsArray(descripcionesAux); formulario.setEdadTipicaAsArray(rangosEdadAux); formulario.setTipoRecursoAsArray(tiposRecursoAux); formulario.setRolUsuarioAsArray(rolesAux); formulario.setContextoAsArray(contextosAux); formulario.setProcesoCognitivoAsArray(procesosAux); formulario.setAnyo(anyos); formulario.setMes(meses); formulario.setDia(dias); formulario.setHora(horas); formulario.setMinutos(minutos); formulario.setSegundosP1(segundosP1); formulario.setSegundosP2(segundosP2); } else if (valor instanceof UsoEducativoValidoVolverFormImpl) { UsoEducativoValidoVolverFormImpl formulario = (UsoEducativoValidoVolverFormImpl) valor; formulario.setIdiomasAsArray(idiomasAux); formulario.setTiempoApDescripcionAsArray(taDescripcionAux); formulario.setDescripcionesAsArray(descripcionesAux); formulario.setEdadTipicaAsArray(rangosEdadAux); formulario.setTipoRecursoAsArray(tiposRecursoAux); formulario.setRolUsuarioAsArray(rolesAux); formulario.setContextoAsArray(contextosAux); formulario.setProcesoCognitivoAsArray(procesosAux); formulario.setAnyo(anyos); formulario.setMes(meses); formulario.setDia(dias); formulario.setHora(horas); formulario.setMinutos(minutos); formulario.setSegundosP1(segundosP1); formulario.setSegundosP2(segundosP2); } else if (valor instanceof UsoEducativoNoValidoVolverFormImpl) { UsoEducativoNoValidoVolverFormImpl formulario = (UsoEducativoNoValidoVolverFormImpl) valor; formulario.setIdiomasAsArray(idiomasAux); formulario.setTiempoApDescripcionAsArray(taDescripcionAux); formulario.setDescripcionesAsArray(descripcionesAux); formulario.setEdadTipicaAsArray(rangosEdadAux); formulario.setTipoRecursoAsArray(tiposRecursoAux); formulario.setRolUsuarioAsArray(rolesAux); formulario.setContextoAsArray(contextosAux); formulario.setProcesoCognitivoAsArray(procesosAux); formulario.setAnyo(anyos); formulario.setMes(meses); formulario.setDia(dias); formulario.setHora(horas); formulario.setMinutos(minutos); formulario.setSegundosP1(segundosP1); formulario.setSegundosP2(segundosP2); } tipoInteractividad = form.getTipoInteractividad(); nivelInteractividad = form.getNivelInteractividad(); densidadSemantica = form.getDensidadSemantica(); dificultad = form.getDificultad(); //Obtnemos los terminos de los ids seleccionados en todos los combos, y los guarda en los VO dameTerminoId(); //Comprobamos si los campos ha sido rellenados adecuadamente //TIEMPO DE APRENDIZAJE DuracionVO duracionVO = new DuracionVO(); duracion = ""; if (!dias.equals("") || !meses.equals("") || !anyos.equals("")) { duracion = "P"; if (!anyos.equals("")) if (!anyos.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + anyos + "Y"; if (!meses.equals("")) if (!meses.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + meses + "M"; if (!dias.equals("")) { if (!dias.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + dias + "D"; } } if (!horas.equals("") || !minutos.equals("") || !segundosP1.equals("") || !segundosP2.equals("")) { if (duracion.equals("")) duracion = "PT"; else duracion = duracion + "T"; if (!horas.equals("")) if (!horas.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + horas + "H"; if (!minutos.equals("")) if (!minutos.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + minutos + "M"; if (!segundosP1.equals("")) if (!segundosP1.matches("\\d{1,}")) errorNoNumero = true; else if (segundosP2.equals("")) duracion = duracion + segundosP1 + "S"; else if (!segundosP2.matches("\\d{1,}")) errorNoNumero = true; else duracion = duracion + segundosP1 + "." + segundosP2 + "S"; if (segundosP1.equals("") && !segundosP2.equals("")) errorSegundos = true; } duracionVO.setDuracion(duracion); //DESCRIPCIONES TIEMPO APRENDIZAJE DescripcionVO taDescripcionVO = new DescripcionVO(); if (tiempoApDescripcion != null && tiempoApDescripcion.length != 0) { DescripcionVO taDescripcion = (DescripcionVO) tiempoApDescripcion[0]; LangStringVO[] textos = taDescripcion.getTextos(); ArrayList lista = new ArrayList(); for (int j = 0; j < textos.length; j++) { LangStringVO lTADesc = (LangStringVO) textos[j]; if (lTADesc != null) { LangStringVO lLang = new LangStringVO(); String idioma = lTADesc.getIdioma(); String texto = lTADesc.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto.trim()); lista.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } } LangStringVO[] lLangS = (LangStringVO[]) lista.toArray(new LangStringVO[lista.size()]); if (lLangS.length == 0) taDescripcionVO = null; else taDescripcionVO.setTextos(lLangS); } else taDescripcionVO = null; if ((duracion == null || duracion.equals("")) && taDescripcionVO == null) duracionVO = null; else duracionVO.setDescripcion(taDescripcionVO); auxAvanzado.getEducational()[0].setTiempoAprendizaje(duracionVO); //IDIOMAS ArrayList lTextos = new ArrayList(); //if(!((idiomas.length == 1) && (idiomas[0].getTexto().equals("")))){ if (idiomas != null && !((idiomas.length == 1) && (idiomas[0].getTexto().equals("")))) { for (int i = 0; i < idiomas.length; i++) { if (idiomas[i] != null) { IdiomaVO idiomaVO = new IdiomaVO(); IdiomaVO idiVO = (IdiomaVO) (idiomas[i]); if ((idiVO.getTexto() != null) && (!idiVO.getTexto().trim().equals(""))) { idiomaVO.setTexto(idiVO.getTexto().trim()); lTextos.add(idiomaVO); } } else idiomas = null; } idiomas = (IdiomaVO[]) lTextos.toArray(new IdiomaVO[lTextos.size()]); if (idiomas.length == 0) idiomas = null; } else { idiomas = null; } auxAvanzado.getEducational()[0].setIdiomas(idiomas); //TIPOS RECURSOS ArrayList lTextosTR = new ArrayList(); if (tiposRecurso != null && !((tiposRecurso.length == 1) && (tiposRecurso[0].getValor().equals("")))) { for (int i = 0; i < tiposRecurso.length; i++) { if (tiposRecurso[i] != null) { SourceValueVO tipoRecursoVO = new SourceValueVO(); SourceValueVO tRecursoVO = (SourceValueVO) (tiposRecurso[i]); if ((tRecursoVO.getValor() != null) && (!tRecursoVO.getValor().equals(""))) { tipoRecursoVO.setValor(tRecursoVO.getValor()); tipoRecursoVO.setSource(source); lTextosTR.add(tipoRecursoVO); } } else tiposRecurso = null; } tiposRecurso = (SourceValueVO[]) lTextosTR.toArray(new SourceValueVO[lTextosTR.size()]); if (tiposRecurso.length == 0) tiposRecurso = null; } else { tiposRecurso = null; } auxAvanzado.getEducational()[0].setTiposrecursoedu(tiposRecurso); //ROLES ArrayList lTextosR = new ArrayList(); if (roles != null && !((roles.length == 1) && (roles[0].getValor().equals("")))) { for (int i = 0; i < roles.length; i++) { if (roles[i] != null) { SourceValueVO rolesVO = new SourceValueVO(); SourceValueVO auxRolesVO = (SourceValueVO) (roles[i]); if ((auxRolesVO.getValor() != null) && (!auxRolesVO.getValor().equals(""))) { rolesVO.setValor(auxRolesVO.getValor()); rolesVO.setSource(source); lTextosR.add(rolesVO); } } else roles = null; } roles = (SourceValueVO[]) lTextosR.toArray(new SourceValueVO[lTextosR.size()]); if (roles.length == 0) roles = null; } else { roles = null; } auxAvanzado.getEducational()[0].setDestinatarios(roles); //CONTEXTOS ArrayList lTextosC = new ArrayList(); if (contextos != null && !((contextos.length == 1) && (contextos[0].getValor().equals("")))) { for (int i = 0; i < contextos.length; i++) { if (contextos[i] != null) { SourceValueVO contextoVO = new SourceValueVO(); SourceValueVO auxContextoVO = (SourceValueVO) (contextos[i]); if ((auxContextoVO.getValor() != null) && (!auxContextoVO.getValor().equals(""))) { contextoVO.setValor(auxContextoVO.getValor()); contextoVO.setSource(source); lTextosC.add(contextoVO); } } else contextos = null; } contextos = (SourceValueVO[]) lTextosC.toArray(new SourceValueVO[lTextosC.size()]); if (contextos.length == 0) contextos = null; } else { contextos = null; } auxAvanzado.getEducational()[0].setContextos(contextos); //PROCESOS COGNITIVOS ArrayList lTextosPC = new ArrayList(); if (procesosCognitivos != null && !((procesosCognitivos.length == 1) && (procesosCognitivos[0].getValor().equals("")))) { for (int i = 0; i < procesosCognitivos.length; i++) { if (procesosCognitivos[i] != null) { SourceValueVO procesoVO = new SourceValueVO(); SourceValueVO auxProcesoVO = (SourceValueVO) (procesosCognitivos[i]); if ((auxProcesoVO.getValor() != null) && (!auxProcesoVO.getValor().equals(""))) { procesoVO.setValor(auxProcesoVO.getValor()); procesoVO.setSource(source); lTextosPC.add(procesoVO); } } else procesosCognitivos = null; } procesosCognitivos = (SourceValueVO[]) lTextosPC.toArray(new SourceValueVO[lTextosPC.size()]); if (procesosCognitivos.length == 0) procesosCognitivos = null; } else { procesosCognitivos = null; } auxAvanzado.getEducational()[0].setProcesoscognitivos(procesosCognitivos); //DESCRIPCIONES ArrayList listaDesc = new ArrayList(); if (descripciones != null && descripciones.length != 0) { LangStringVO[] textos = descripciones[0].getTextos(); if (descripciones.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().trim().equals("")) { descripciones = null; } else { for (int i = 0; i < descripciones.length; i++) { if (descripciones[i] != null) { ArrayList listDesc = new ArrayList(); DescripcionVO lDesc = (DescripcionVO) (descripciones[i]); DescripcionVO lDescripciones = new DescripcionVO(); for (int j = 0; j < lDesc.getTextos().length; j++) { LangStringVO lang = lDesc.getTextos()[j]; LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto.trim()); listDesc.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listDesc.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listDesc .toArray(new LangStringVO[listDesc.size()]); lDescripciones.setTextos(langs); listaDesc.add(lDescripciones); } } } if (listaDesc.size() == 0) descripciones = null; else descripciones = (DescripcionVO[]) listaDesc.toArray(new DescripcionVO[listaDesc.size()]); } } else { descripciones = null; } auxAvanzado.getEducational()[0].setDescripciones(descripciones); //RANGOS DE EDAD O EDAD TIPICA ArrayList listaRangos = null; if (rangosEdad != null && rangosEdad.length != 0) { LangStringVO[] textos = rangosEdad[0].getTextos(); if (rangosEdad.length == 1 && textos.length == 1 & textos[0].getIdioma().equals("") && textos[0].getTexto().trim().equals("")) { rangosEdad = null; } else { listaRangos = new ArrayList(); for (int i = 0; i < rangosEdad.length; i++) { if (rangosEdad[i] != null) { ArrayList listRangos = new ArrayList(); RangoEdadVO lRangos = (RangoEdadVO) (rangosEdad[i]); RangoEdadVO lRangosEdad = new RangoEdadVO(); for (int j = 0; j < lRangos.getTextos().length; j++) { LangStringVO lang = (LangStringVO) (lRangos.getTextos()[j]); LangStringVO lLang = new LangStringVO(); String idioma = lang.getIdioma(); String texto = lang.getTexto(); if (((idioma != null) && (!idioma.equals(""))) && ((texto != null) && (!texto.trim().equals("")))) { lLang.setIdioma(idioma); lLang.setTexto(texto.trim()); listRangos.add(lLang); } else { if (idioma.equals("") && !texto.equals("")) errorFaltaIdioma = true; if (!idioma.equals("") && texto.equals("")) errorFaltaTexto = true; } } if (listRangos.size() != 0) { LangStringVO[] langs = (LangStringVO[]) listRangos .toArray(new LangStringVO[listRangos.size()]); lRangosEdad.setTextos(langs); listaRangos.add(lRangosEdad); } } } if (listaRangos.size() == 0) rangosEdad = null; else rangosEdad = (RangoEdadVO[]) listaRangos.toArray(new RangoEdadVO[listaRangos.size()]); } } else rangosEdad = null; auxAvanzado.getEducational()[0].setRangoedades(rangosEdad); //TIPO INTERACTIVIDAD SourceValueVO tipoInteractividadSV = new SourceValueVO(); if ((tipoInteractividad != null) && (!tipoInteractividad.equals(""))) { tipoInteractividadSV.setValor(tipoInteractividad); tipoInteractividadSV.setSource(source); } else { tipoInteractividadSV = null; } auxAvanzado.getEducational()[0].setTipoDeInteractividad(tipoInteractividadSV); //NIVEL AGREGACION SourceValueVO nivel = new SourceValueVO(); if ((nivelInteractividad != null) && (!nivelInteractividad.equals(""))) { nivel.setSource(source); nivel.setValor(nivelInteractividad); } else { nivel = null; } auxAvanzado.getEducational()[0].setNivelInteractividad(nivel); //DENSIDAD SEMANTICA SourceValueVO densidad = new SourceValueVO(); if ((densidadSemantica != null) && (!densidadSemantica.equals(""))) { densidad.setSource(source); densidad.setValor(densidadSemantica); } else { densidad = null; } auxAvanzado.getEducational()[0].setDensidadSemantica(densidad); //DIFICULTAD SourceValueVO dificultadSV = new SourceValueVO(); if ((dificultad != null) && (!dificultad.equals(""))) { dificultadSV.setSource(source); dificultadSV.setValor(dificultad); } else { dificultadSV = null; } auxAvanzado.getEducational()[0].setDificultad(dificultadSV); AvEducationalVO eduAux = auxAvanzado.getEducational()[0]; if (eduAux.getContextos() == null && eduAux.getDensidadSemantica() == null && eduAux.getDescripciones() == null && eduAux.getDestinatarios() == null && eduAux.getDificultad() == null && eduAux.getIdiomas() == null && eduAux.getNivelInteractividad() == null && eduAux.getProcesoscognitivos() == null && eduAux.getRangoedades() == null && eduAux.getTiempoAprendizaje() == null && eduAux.getTipoDeInteractividad() == null && eduAux.getTiposrecursoedu() == null) auxAvanzado = null; } catch (org.acegisecurity.AccessDeniedException ad) { logger.error("Error de Acceso " + ad); throw new java.lang.Exception("detalle.uso.edu", ad); } catch (Exception e) { logger.error( "Error en catalogadorWeb, categora Detall Uso Educativo, metodo guardarUsoEducativo " + e); throw new java.lang.Exception("detalle.uso.edu", e); } if (!errorFaltaIdioma && !errorFaltaTexto && !errorNoNumero && !errorSegundos) { try { // Cargamos el objeto de sesion if (catalogadorAvSession.getMDSesion() == null) { if (auxAvanzado != null) catalogadorAvSession.setMDSesion(auxAvanzado); } else { AvEducationalVO[] educaciones = catalogadorAvSession.getMDSesion().getEducational(); // comprobamos que educaciones no sea null, si es null nos creamos uno if (educaciones == null) { if (auxAvanzado != null) catalogadorAvSession.getMDSesion().setEducational(auxAvanzado.getEducational()); } else { //creamos uno mas (cogemos la longitud de las educaciones pues el nuevo indice, si teniamos 4 educaciones los indices //iban de 0 a 3 el indice para la nueva educacion seria 4 y ahora tendriamos 5 educaciones con indices de 0 a 4) if (educaciones.length == iEdu) {//GUARDAR CUANDO HEMOS PULSADO BOTON CREAR ArrayList listaEdu = new ArrayList(); for (int i = 0; i < educaciones.length; i++) listaEdu.add(educaciones[i]); if (auxAvanzado != null && auxAvanzado.getEducational()[0] != null) { listaEdu.add(auxAvanzado.getEducational()[0]); } AvEducationalVO[] educacionesAux = (AvEducationalVO[]) listaEdu .toArray(new AvEducationalVO[0]); catalogadorAvSession.getMDSesion().setEducational(educacionesAux); } else {//GUARDAR CUANDO HEMOS PULSADO BOTON MODIFICAR ArrayList listaEdu = new ArrayList(); for (int i = 0; i < educaciones.length; i++) { if (iEdu == i) { if (auxAvanzado != null && auxAvanzado.getEducational()[0] != null) listaEdu.add(auxAvanzado.getEducational()[0]); } else listaEdu.add(educaciones[i]); } AvEducationalVO[] educacionesAux = (AvEducationalVO[]) listaEdu .toArray(new AvEducationalVO[0]); catalogadorAvSession.getMDSesion().setEducational(educacionesAux); } } } } catch (Exception e) { logger.error( "Error en catalogadorWeb, categora Detall Uso Educativo, metodo guardarUsoEducativo " + e); throw new java.lang.Exception("detalle.uso.edu", e); } } else { if (errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.idioma_texto}"); else if (!errorFaltaIdioma && errorFaltaTexto) throw new ValidatorException("{general.error.texto}"); else if (errorFaltaIdioma && !errorFaltaTexto) throw new ValidatorException("{general.error.idioma}"); else if (errorNoNumero) throw new ValidatorException("{educacion.error.NoNumero}"); else if (errorSegundos) throw new ValidatorException("{educacion.error.Segundos}"); } }