Package ar.com.AmberSoft.iEvenTask.services

Source Code of ar.com.AmberSoft.iEvenTask.services.ListObjectiveService

package ar.com.AmberSoft.iEvenTask.services;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import ar.com.AmberSoft.iEvenTask.backend.entities.Objetivo;
import ar.com.AmberSoft.iEvenTask.backend.entities.Tarea;
import ar.com.AmberSoft.iEvenTask.backend.entities.User;
import ar.com.AmberSoft.iEvenTask.backend.entities.VisibleObjetivo;
import ar.com.AmberSoft.iEvenTask.utils.AppAdmin;
import ar.com.AmberSoft.util.LDAPUtils;
import ar.com.AmberSoft.util.ParamsConst;

public class ListObjectiveService extends ListService {

  @SuppressWarnings({"unchecked", "rawtypes"})
  @Override
  public Map execute(Map paramsthrows Exception {

    Map result = super.execute(params);
   
    HttpServletRequest request = (HttpServletRequest) params.get(ParamsConst.REQUEST);
    User user = null;
    if (request != null) {
      user = (User) request.getSession().getAttribute(ParamsConst.USER);
    }
   
    try {
     
      Map<String, User> users = null;
      if (user != null) {
        if (!AppAdmin.getInstance().getConfig().isEmulate()){
          users = LDAPUtils.getUsersMap(user.getId(), user.getPassword());
        }
      }
   
      Collection<Objetivo> objetivos = (Collection<Objetivo>) result.get(ParamsConst.DATA);
     
      Iterator<Objetivo> it = objetivos.iterator();
      while (it.hasNext()) {
        Objetivo objetivo = (Objetivo) it.next();
        if (users != null){
          User actualUser = users.get(objetivo.getIdUsuarioAsignado());
          if (actualUser!=null){
            objetivo.setAsignado(actualUser.getName())
          }
        }
       
        Collection <VisibleObjetivo> visibles = objetivo.getVisibles();
        if (visibles!=null){
          Iterator<VisibleObjetivo> itVisibles = visibles.iterator();
          Set<VisibleObjetivo> nuevosVisibles = new HashSet<VisibleObjetivo>();
          while (itVisibles.hasNext()) {
            VisibleObjetivo visible = (VisibleObjetivo) itVisibles.next();
            visible.setObjetivo(null);
            nuevosVisibles.add(visible);
          }
          objetivo.setVisibles(nuevosVisibles);
        }
       
        Set<Tarea> tareas = objetivo.getTareas();
        if (tareas!=null){
          Set<Tarea> nuevasTareas = new HashSet<Tarea>();
          Iterator<Tarea> itTareas = tareas.iterator();
          while (itTareas.hasNext()) {
            Tarea tarea = (Tarea) itTareas.next();
            tarea.setComentarios(null);
            tarea.setObjetivo(null);
            tarea.setVisibles(null);
            tarea.setSubtareas(null);
            nuevasTareas.add(tarea);
          }
          objetivo.setTareas(nuevasTareas);
        }
        //objetivo.setTareas(null);
       
       
      }
    } catch (UnsupportedEncodingException e) {
      throw new RuntimeException(e);
    }
    return result;
  }
 
  @SuppressWarnings({"unchecked", "rawtypes"})
  @Override
  public Map onExecute(Map params) {
    Map result = super.onExecute(params);
   
    // Esto es necesario realizar para que estas colecciones no den Lazy initialization exception
    Collection<Objetivo> objetivos = (Collection<Objetivo>) result.get(ParamsConst.DATA);
    Iterator<Objetivo> it = objetivos.iterator();
    while (it.hasNext()) {
      Objetivo objetivo = (Objetivo) it.next();
      preventLazy(objetivo.getVisibles());
      preventLazy(objetivo.getTareas());
    }
    return result;
  }


  @SuppressWarnings("rawtypes")
  public void preventLazy(Collection collection) {
    if (collection!=null){
      collection.iterator();
    }
  }
  @Override
  protected String getEntity() {
    return Objetivo.class.getName();
  }

  @SuppressWarnings("rawtypes")
  @Override
  public Map onEmulate(Map params) {
    Map<String, Object> map = new HashMap<String, Object>();
    Collection<Objetivo> list = new ArrayList<Objetivo>();
    addObjetivo(list);
    addObjetivo(list);
    addObjetivo(list);
    map.put(ParamsConst.DATA, list);
    map.put(ParamsConst.TOTAL_COUNT, new Long(list.size()));
    map.put(ParamsConst.OFFSET, (Integer) params.get("offset"));
    map.put(ParamsConst.PAGING_LOAD_RESULT, Boolean.TRUE);
    return map;
  }
 
  private void addObjetivo(Collection<Objetivo> list) {
    Objetivo objetivo = new Objetivo();
    objetivo.setNombreObjetivo(objetivo.getNombreObjetivo());
    objetivo.setTipoObjetivo(objetivo.getTipoObjetivo());
    objetivo.setEscalaMedicion(objetivo.getEscalaMedicion());
    objetivo.setFechaFinalizacion(objetivo.getFechaFinalizacion());
    objetivo.setPonderacion(objetivo.getPonderacion());
    objetivo.setIdUsuarioAsignado(objetivo.getIdUsuarioAsignado());
    objetivo.setDescripcion(objetivo.getDescripcion());
 
    List<Tarea> tareas = new ArrayList<Tarea>();
    ListTaskService.addTarea(tareas);
    ListTaskService.addTarea(tareas);
    ListTaskService.addTarea(tareas);
    ListTaskService.addTarea(tareas);
    ListTaskService.addTarea(tareas);
    objetivo.setTareas(new HashSet<Tarea>(tareas));
   
    list.add(objetivo);
  }

}
TOP

Related Classes of ar.com.AmberSoft.iEvenTask.services.ListObjectiveService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.