@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); }
private void setOCWEnlace(Enlace enlace, UIEntity entity) { if (enlace.getOcw()) { entity.put("ocw", "Si"); } else { entity.put("ocw", "No"); } }
@DELETE @Path("{enlaceId}") @Produces(MediaType.APPLICATION_XML) public ResponseMessage delete(@PathParam("enlaceId") String enlaceId) throws RegistroNoEncontradoException, NumberFormatException { Enlace.delete(Long.parseLong(enlaceId)); return new ResponseMessage(true); }
@GET @Path("{enlaceId}") @Produces(MediaType.TEXT_XML) public List<UIEntity> getEnlace(@PathParam("enlaceId") String enlaceId) throws RegistroNoEncontradoException, NumberFormatException { Enlace enlace = Enlace.getEnlace(Long.parseLong(enlaceId)); UIEntity entity = UIEntity.toUI(enlace); setOCWEnlace(enlace, entity); setAtributosMultidioma(enlace, entity); return Collections.singletonList(entity); }
private void setAtributosMultidioma(Enlace enlace, UIEntity entity) { for (EnlaceIdioma enlaceIdioma : enlace.getEnlacesIdiomas()) { if (enlaceIdioma.getDescripcion() != null && !enlaceIdioma.getDescripcion().equals("")) { entity.put( enlaceIdioma.getIdioma().getAcronimo(), "descripcion", enlaceIdioma.getDescripcion()); } if (enlaceIdioma.getNombre() != null && !enlaceIdioma.getNombre().equals("")) { entity.put(enlaceIdioma.getIdioma().getAcronimo(), "nombre", enlaceIdioma.getNombre()); } if (enlaceIdioma.getUrl() != null && !enlaceIdioma.getUrl().equals("")) { entity.put(enlaceIdioma.getIdioma().getAcronimo(), "url", enlaceIdioma.getUrl()); } } }
@GET @Produces(MediaType.TEXT_XML) public List<UIEntity> getEnlaces() { List<UIEntity> result = new ArrayList<UIEntity>(); List<Enlace> listaEnlaces = Enlace.getEnlaces(); for (Enlace enlace : listaEnlaces) { UIEntity enlaceUI = UIEntity.toUI(enlace); setOCWEnlace(enlace, enlaceUI); setAtributosMultidioma(enlace, enlaceUI); result.add(enlaceUI); } return result; }
@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; }