@POST @Produces(MediaType.TEXT_XML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public UIEntity insertEnlace(MultivaluedMap<String, String> params) throws ParametrosObligatoriosException { Enlace enlace = new Enlace(); enlace.setOrden(Long.parseLong(getParamString(params, "orden"))); if (params.containsKey("ocw")) { enlace.setOcw(true); } Set<EnlaceIdioma> enlacesIdiomas = new HashSet<EnlaceIdioma>(); List<Idioma> idiomas = Idioma.getIdiomasEdicion(); for (Idioma idioma : idiomas) { String url = getParamString(params, "url__" + idioma.getAcronimo().toLowerCase()); String nombre = getParamString(params, "nombre__" + idioma.getAcronimo().toLowerCase()); String descripcion = getParamString(params, "descripcion__" + idioma.getAcronimo().toLowerCase()); if (!url.equals("") || !nombre.equals("") || !descripcion.equals("")) { EnlaceIdioma enlaceIdioma = new EnlaceIdioma(); enlaceIdioma.setUrl(url); enlaceIdioma.setNombre(nombre); enlaceIdioma.setDescripcion(descripcion); enlaceIdioma.setIdioma(idioma); enlaceIdioma.setEnlace(enlace); enlacesIdiomas.add(enlaceIdioma); } } enlace.setEnlacesIdiomas(enlacesIdiomas); enlace.compruebaCamposObligatorios(idiomas.get(0).getAcronimo()); enlace = enlace.insert(); UIEntity entity = UIEntity.toUI(enlace); return entity; }
@PUT @Path("{enlaceId}") @Produces(MediaType.TEXT_XML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public ResponseMessage update( @PathParam("enlaceId") String enlaceId, MultivaluedMap<String, String> params) throws RegistroNoEncontradoException, ParametrosObligatoriosException { Enlace enlace = Enlace.getEnlace(Long.parseLong(enlaceId)); enlace.setOrden(Long.parseLong(getParamString(params, "orden"))); if (params.containsKey("ocw")) { enlace.setOcw(true); } else { enlace.setOcw(false); } Set<EnlaceIdioma> enlacesIdiomas = enlace.getEnlacesIdiomas(); List<Idioma> idiomas = Idioma.getIdiomasEdicion(); boolean exists = false; for (Idioma idioma : idiomas) { String url = getParamString(params, "url__" + idioma.getAcronimo().toLowerCase()); String nombre = getParamString(params, "nombre__" + idioma.getAcronimo().toLowerCase()); String descripcion = getParamString(params, "descripcion__" + idioma.getAcronimo().toLowerCase()); for (EnlaceIdioma enlaceIdioma : enlacesIdiomas) { if (enlaceIdioma.getIdioma().getAcronimo().equals(idioma.getAcronimo())) { enlaceIdioma.setUrl(url); enlaceIdioma.setNombre(nombre); enlaceIdioma.setDescripcion(descripcion); exists = true; break; } } if (!exists) { if (!url.equals("") || !nombre.equals("") || !descripcion.equals("")) { EnlaceIdioma enlaceIdioma = new EnlaceIdioma(); enlaceIdioma.setUrl(url); enlaceIdioma.setNombre(nombre); enlaceIdioma.setDescripcion(descripcion); enlaceIdioma.setIdioma(idioma); enlaceIdioma.setEnlace(enlace); enlacesIdiomas.add(enlaceIdioma); } } exists = false; } enlace.setEnlacesIdiomas(enlacesIdiomas); enlace.compruebaCamposObligatorios(idiomas.get(0).getAcronimo()); enlace.update(); return new ResponseMessage(true); }