}
Collection<Tarea> tareas = (Collection<Tarea>) result.get(ParamsConst.DATA);
Iterator<Tarea> it = tareas.iterator();
while (it.hasNext()) {
Tarea tarea = (Tarea) it.next();
if (users != null) {
User actualUser = users.get(tarea.getId_usuario());
if (actualUser != null) {
tarea.setAsignado(actualUser.getName());
}
}
Collection<Comentario> comentarios = tarea.getComentarios();
if (comentarios!=null){
Iterator<Comentario> itComentarios = comentarios.iterator();
Set<Comentario> nuevosComentarios = new HashSet<Comentario>();
while (itComentarios.hasNext()) {
Comentario comentario = (Comentario) itComentarios.next();
if (users != null) {
User commentUser = users.get(comentario.getUsuario());
if (commentUser != null) {
comentario.setNombreUsuario(commentUser.getName());
}
}
comentario.setTarea(null);
nuevosComentarios.add(comentario);
}
tarea.setComentarios(nuevosComentarios);
}
Collection<Visible> visibles = tarea.getVisibles();
if (visibles!=null){
Iterator<Visible> itVisibles = visibles.iterator();
Set<Visible> nuevosVisibles = new HashSet<Visible>();
while (itVisibles.hasNext()) {
Visible visible = (Visible) itVisibles.next();
visible.setTarea(null);
nuevosVisibles.add(visible);
}
tarea.setVisibles(nuevosVisibles);
}
//Este seteo previene un ciclo infinito en la adaptacion de tipos, previo a la vista
//tarea.setSubtareas(null);
//FIXME: No necesario lo vamos a resolver en otro servicio
Collection<Tarea> subtareas = tarea.getSubtareas();
if (subtareas!=null){
Iterator<Tarea> itTareas = subtareas.iterator();
Set<Tarea> nuevasSubTareas = new HashSet<Tarea>();
while (itTareas.hasNext()) {
Tarea subTarea = (Tarea) itTareas.next();
Tarea nuevaSubTarea = new Tarea();
PropertyUtils.copyProperties(nuevasSubTareas, subTarea);
nuevaSubTarea.setSubtareas(null);
nuevaSubTarea.setTareaPadre(null);
nuevasSubTareas.add(nuevaSubTarea);
}
tarea.setSubtareas(nuevasSubTareas);
}
}