/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.inbio.ara.facade.indicator.impl; import java.util.ArrayList; import java.util.List; import javax.ejb.EJB; import org.inbio.ara.facade.indicator.*; import javax.ejb.Stateless; import org.inbio.ara.dto.indicator.IndicatorDTO; import org.inbio.ara.dto.indicator.IndicatorDTOFactory; import org.inbio.ara.dto.indicator.IndicatorDublinCoreDTO; import org.inbio.ara.dto.indicator.IndicatorDublinCoreDTOFactory; import org.inbio.ara.eao.indicator.IndicatorDublinCoreEAOLocal; import org.inbio.ara.eao.indicator.IndicatorEAOLocal; import org.inbio.ara.persistence.indicator.Indicator; import org.inbio.ara.persistence.indicator.IndicatorDublinCore; /** * * @author gsulca */ @Stateless public class IndicatorFacadeImpl implements IndicatorFacadeRemote { //Injections @EJB private IndicatorEAOLocal indicatorEAOImpl; @EJB private IndicatorDublinCoreEAOLocal indicatorDublinCoreEAOImpl; //DTO factories private IndicatorDTOFactory indicatorDTOFactory = new IndicatorDTOFactory(); private IndicatorDublinCoreDTOFactory indicatorDublinCoreDTOFactory = new IndicatorDublinCoreDTOFactory(); public List<IndicatorDTO> getChildrenByIndicatorId(Long indicatorId) { List<Long> indicators = indicatorEAOImpl.findChildrenByIndicatorId(indicatorId); List<IndicatorDTO> indicatorChildren = new ArrayList() ; if(indicators!=null && indicators.size() !=0){ for(Long indicatorChildId: indicators){ Indicator child = (Indicator) indicatorEAOImpl.findById (Indicator.class, indicatorChildId); //System.out.println(indicatorChildId+" -> "+child.getName()); indicatorChildren.add(indicatorDTOFactory.createDTO(child)); } } else { //indicatorChildren.add(new IndicatorDTO()); indicatorChildren = null; } return indicatorChildren; } public IndicatorDTO getIndicatorByIndicatorId(Long indicatorId) { IndicatorDTO result; Indicator child = (Indicator) indicatorEAOImpl.findById (Indicator.class, indicatorId); if(child !=null) { result = indicatorDTOFactory.createDTO(child); } else { result = null; } //System.out.println("---> Apply to parts (facade) "+result.getAppliesToParts()); return result; } public Long countChildrenByIndicatorId(Long indicatorId) { return indicatorEAOImpl.countByIndicatorId(indicatorId); } public IndicatorDTO saveNewIndicator(IndicatorDTO iDTO) { Indicator indicator = indicatorDTOFactory.createPlainEntity(iDTO); indicatorEAOImpl.create(indicator); //Actualizar el CurrentDTO con el id asignado IndicatorDTO result = indicatorDTOFactory.createDTO(indicator); //Retornar el nuevo dto return result; } public IndicatorDTO updateIndicator(IndicatorDTO iDTO) { Indicator indicator = indicatorEAOImpl.findById(Indicator.class, iDTO.getIndicatorId()); //System.out.println("************** Create by "+indicator.getCreatedBy()); indicator = indicatorDTOFactory.updateEntityWithPlainValues(iDTO, indicator); indicatorEAOImpl.update(indicator); return null; } public void deleteIndicator(Long IndicatorId) { try { indicatorDublinCoreEAOImpl.deleteByIndicatorId(IndicatorId); } catch(Exception e) { System.out.println("NO TIENE RELACIONES CON DUBLIN CORE"); } Indicator indicator = indicatorEAOImpl.findById(Indicator.class, IndicatorId); indicatorEAOImpl.delete(indicator); } public void saveIndicatorDublinCores(Long indicatorId, List<String> dublinCoreIds, String userName) { for(String dublinCoreId: dublinCoreIds) { IndicatorDublinCoreDTO newDTO = new IndicatorDublinCoreDTO(); newDTO.setDublinCoreId(new Long(dublinCoreId)); newDTO.setIndicatorId(indicatorId); newDTO.setUserName(userName); IndicatorDublinCore indicatorDublinCore = indicatorDublinCoreDTOFactory.createPlainEntity(newDTO); indicatorDublinCoreEAOImpl.create(indicatorDublinCore); } } public void deleteIndicatorDublinCoreByIndicator(Long indicatorId) { indicatorDublinCoreEAOImpl.deleteByIndicatorId(indicatorId); } public void deleteIndicatorDublinCoreById(Long indicatorId, Long dublinCoreId) { indicatorDublinCoreEAOImpl.deleteIndicatorDublinCoreById(indicatorId, dublinCoreId); } public void deleteIndicatorDublinCoreByIds(Long indicatorId, List<String> dublinCoreIds) { for(String dublinCoreId: dublinCoreIds) { indicatorDublinCoreEAOImpl.deleteIndicatorDublinCoreById(indicatorId, new Long(dublinCoreId)); } } public Long countDublinCoreByIndicator(Long indicatorId) { return indicatorDublinCoreEAOImpl.countDublinCoreByIndicator(indicatorId); } public List<Long> getDublinCoreIdsByIndicator(Long indicatorId) { return indicatorDublinCoreEAOImpl.getDublinCoreByIndicator(indicatorId); } }