/**
* Implements operations for managing the custom UI table of the aidr_predict DB
*
* @author Koushik
*/
package qa.qcri.aidr.dbmanager.ejb.remote.facade.imp;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import qa.qcri.aidr.dbmanager.dto.CustomUiTemplateDTO;
import qa.qcri.aidr.dbmanager.ejb.local.facade.impl.CoreDBServiceFacadeImp;
import qa.qcri.aidr.dbmanager.ejb.remote.facade.CustomUiTemplateResourceFacade;
import qa.qcri.aidr.dbmanager.entities.misc.CustomUiTemplate;
@Stateless(name="CustomUiTemplateResourceFacadeImp")
public class CustomUiTemplateResourceFacadeImp extends CoreDBServiceFacadeImp<CustomUiTemplate, Long> implements CustomUiTemplateResourceFacade {
private static Logger logger = Logger.getLogger("aidr-db-manager");
protected CustomUiTemplateResourceFacadeImp(){
super(CustomUiTemplate.class);
}
@Override
public List<CustomUiTemplateDTO> getAllCustomUITemplateByCrisisID(long crisisID) {
Criterion criterion = Restrictions.eq("crisisID", crisisID);
List<CustomUiTemplateDTO> dtoList = null;
try {
List<CustomUiTemplate> customUITemplates = this.getAllByCriteria(criterion);
if (customUITemplates != null) {
dtoList = new ArrayList<CustomUiTemplateDTO>(0);
for (CustomUiTemplate c: customUITemplates) {
CustomUiTemplateDTO dto = new CustomUiTemplateDTO(c);
dtoList.add(dto);
}
}
return dtoList;
} catch (Exception e) {
logger.error("Error in getAllCustomUITemplateByCrisisID for crisisID : " + crisisID, e);
return null;
}
}
@Override
public List<CustomUiTemplateDTO> getCustomUITemplateBasedOnTypeByCrisisID(long crisisID, int templateType) {
logger.info("getCustomUITemplateBasedOnTypeByCrisisID: " + crisisID + "-" + templateType );
Criterion criterion = Restrictions.conjunction()
.add(Restrictions.eq("crisisID",crisisID))
.add(Restrictions.eq("templateType", templateType));
List<CustomUiTemplateDTO> dtoList = null;
try {
List<CustomUiTemplate> customUITemplates = this.getAllByCriteria(criterion);
if (customUITemplates != null) {
dtoList = new ArrayList<CustomUiTemplateDTO>(0);
for (CustomUiTemplate c: customUITemplates) {
CustomUiTemplateDTO dto = new CustomUiTemplateDTO(c);
dtoList.add(dto);
}
}
return dtoList;
} catch (Exception e) {
logger.error("Error in getCustomUITemplateBasedOnTypeByCrisisID for crisisID : " + crisisID);
return null;
}
}
@Override
public List<CustomUiTemplateDTO> getCustomUITemplateBasedOnTypeByCrisisIDAndAttributeID(long crisisID, long attributeID, int templateType) {
Criterion criterion = Restrictions.conjunction()
.add(Restrictions.eq("crisisID",crisisID))
.add(Restrictions.eq("templateType", templateType))
.add(Restrictions.eq("nominalAttributeID", attributeID));
List<CustomUiTemplateDTO> dtoList = null;
try {
List<CustomUiTemplate> customUITemplates = this.getAllByCriteria(criterion);
if (customUITemplates != null) {
dtoList = new ArrayList<CustomUiTemplateDTO>(0);
for (CustomUiTemplate c: customUITemplates) {
CustomUiTemplateDTO dto = new CustomUiTemplateDTO(c);
dtoList.add(dto);
}
}
return dtoList;
} catch (Exception e) {
logger.error("Error in getCustomUITemplateBasedOnTypeByCrisisIDAndAttributeID for crisisID : " + crisisID
+ " and attributeID : " + attributeID);
return null;
}
}
@Override
public List<CustomUiTemplateDTO> getCustomUITemplateBasedOnTypeByCrisisIDAttributeIDAndStatus(long crisisID, long attributeID, int templateType, int status) {
Criterion criterion = Restrictions.conjunction()
.add(Restrictions.eq("crisisID",crisisID))
.add(Restrictions.eq("templateType", templateType))
.add(Restrictions.eq("nominalAttributeID", attributeID))
.add(Restrictions.eq("status", status));
List<CustomUiTemplateDTO> dtoList = null;
try {
List<CustomUiTemplate> customUITemplates = this.getAllByCriteria(criterion);
if (customUITemplates != null) {
dtoList = new ArrayList<CustomUiTemplateDTO>(0);
for (CustomUiTemplate c: customUITemplates) {
CustomUiTemplateDTO dto = new CustomUiTemplateDTO(c);
dtoList.add(dto);
}
}
return dtoList;
} catch (Exception e) {
logger.error("Error in getCustomUITemplateBasedOnTypeByCrisisIDAttributeIDAndStatus for crisisID : " + crisisID
+ " and attributeID : " + attributeID);
return null;
}
}
@Override
public List<CustomUiTemplateDTO> getCustomUITemplateByCrisisIDAndAttributeID(long crisisID, long attributeID) {
Criterion criterion = Restrictions.conjunction()
.add(Restrictions.eq("crisisID",crisisID))
.add(Restrictions.eq("nominalAttributeID", attributeID));
List<CustomUiTemplateDTO> dtoList = null;
try {
List<CustomUiTemplate> customUITemplates = this.getAllByCriteria(criterion);
if (customUITemplates != null) {
dtoList = new ArrayList<CustomUiTemplateDTO>(0);
for (CustomUiTemplate c: customUITemplates) {
CustomUiTemplateDTO dto = new CustomUiTemplateDTO(c);
dtoList.add(dto);
}
}
return dtoList;
} catch (Exception e) {
logger.error("Error in getCustomUITemplateByCrisisIDAndAttributeID "
+ "crisisID : " + crisisID + " and attributeID : " + attributeID);
return null;
}
}
@Override
public CustomUiTemplateDTO addCustomUITemplate(CustomUiTemplateDTO customUITemplate) {
CustomUiTemplate c = customUITemplate.toEntity();
em.persist(c);
em.flush();
em.refresh(c);
return new CustomUiTemplateDTO(c);
}
@Override
public CustomUiTemplateDTO updateCustomUITemplate(CustomUiTemplateDTO currentTemplate, CustomUiTemplateDTO updatedTemplate) {
currentTemplate.setTemplateValue(updatedTemplate.getTemplateValue());
CustomUiTemplate c = em.merge(currentTemplate.toEntity());
em.flush();
em.refresh(c);
return new CustomUiTemplateDTO(c);
}
@Override
public CustomUiTemplateDTO updateCustomUITemplateStatus(CustomUiTemplateDTO currentTemplate, CustomUiTemplateDTO updatedTemplate) {
currentTemplate.setIsActive(updatedTemplate.isIsActive());
CustomUiTemplate c = em.merge(currentTemplate.toEntity());
em.flush();
em.refresh(c);
return new CustomUiTemplateDTO(c);
}
@Override
public void deleteCustomUITemplateBasedOnTypeByCrisisID(long crisisID, int type) {
//To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void deleteCustomUITemplateByCrisisID(long crisisID) {
//To change body of implemented methods use File | Settings | File Templates.
}
public int deleteCustomUiTemplateById(long customUiTemplateId){
try {
CustomUiTemplateDTO customUiTemplateDTO = getCustomUITemplateByID(customUiTemplateId);
Object managed = em.merge(customUiTemplateDTO.toEntity());
em.remove(managed);
return 1;
} catch (Exception e) {
logger.warn("Warning! couldn't delete template by ID : " + customUiTemplateId);
return 0;
}
}
public CustomUiTemplateDTO getCustomUITemplateByID(long customUiTemplateId) {
Criterion criterion =Restrictions.eq("customUitemplateId",customUiTemplateId);
CustomUiTemplate customUiTemplate = this.getByCriteria(criterion);
return (new CustomUiTemplateDTO(customUiTemplate));
}
}