package com.vst.service.impl;
import com.vst.dao.BuildingObjectDao;
import com.vst.dao.DefectCategoryDao;
import com.vst.dao.DefectRecomendationDao;
import com.vst.model.ConstructionDefect;
import com.vst.model.DefectCategory;
import com.vst.model.DefectRecomendation;
import com.vst.service.DefectRecomendationManager;
import java.util.*;
public class DefectRecomendationManagerImpl extends BaseManager implements DefectRecomendationManager {
private DefectRecomendationDao dao;
private BuildingObjectDao buildingObjectDao;
private DefectCategoryDao defectCategoryDao;
public void setDefectCategoryDao(DefectCategoryDao defectCategoryDao) {
this.defectCategoryDao = defectCategoryDao;
}
public void setBuildingObjectDao(BuildingObjectDao buildingObjectDao) {
this.buildingObjectDao = buildingObjectDao;
}
/**
* Set the Dao for communication with the data layer.
*
* @param dao
*/
public void setDefectRecomendationDao(DefectRecomendationDao dao) {
this.dao = dao;
}
public List getRecomendationsForConstructionType(String constructionTypeId, String buildingObjectId) {
// getting defect categories for constructiontype in the current object
List constructionDefects = buildingObjectDao.getConstructionDefectsOfType(constructionTypeId,buildingObjectId);
//getting defect category for the current construction defect
Set defectCategorySet = new HashSet();
for (int i = 0; i < constructionDefects.size(); i++) {
ConstructionDefect constructionDefect = (ConstructionDefect) constructionDefects.get(i);
DefectCategory defectCategory = defectCategoryDao.getDefectCategoryByConstructionDefect(constructionDefect.getConstructionDefectId().toString(),constructionTypeId);
if (defectCategory != null) {
defectCategorySet.add(defectCategory);
}
}
//getting recomendations for these defect Categories
Set recomendationSet = new HashSet();
Iterator defectCategoryIterator = defectCategorySet.iterator();
while (defectCategoryIterator.hasNext()) {
DefectCategory defectCategory = (DefectCategory) defectCategoryIterator.next();
DefectRecomendation defectRecomendation = dao.getDefectRecomendationByCategoryAndConstruction(defectCategory.getDefectCategoryId().toString());
if (defectRecomendation != null) {
recomendationSet.add(defectRecomendation);
}
}
List recomendationList = new ArrayList();
recomendationList.addAll(recomendationSet);
return recomendationList;
}
public boolean isUniqueDefectRecomendation(DefectRecomendation defectRecomendation){
return dao.isUniqueDefectRecomendation(defectRecomendation);
}
public List getDefectRecomendationsByCategoryIdConstructionTypeId(String defectCategoryId,String constructionTypeId)
{
return dao.getDefectRecomendationsByCategoryIdConstructionTypeId(defectCategoryId,constructionTypeId);
}
public List getRecomendationsForObject(String buildingObjectId) {
return dao.getRecomendationsForObject(buildingObjectId);
}
/**
* @see com.vst.service.DefectRecomendationManager#getDefectRecomendations(com.vst.model.DefectRecomendation)
*/
public List getDefectRecomendations(final DefectRecomendation defectRecomendation) {
return dao.getDefectRecomendations(defectRecomendation);
}
/**
* @see com.vst.service.DefectRecomendationManager#getDefectRecomendation(String defectRecomendationId)
*/
public DefectRecomendation getDefectRecomendation(final String defectRecomendationId) {
return dao.getDefectRecomendation(new Integer(defectRecomendationId));
}
/**
* @see com.vst.service.DefectRecomendationManager#saveDefectRecomendation(DefectRecomendation defectRecomendation)
*/
public void saveDefectRecomendation(DefectRecomendation defectRecomendation) {
dao.saveDefectRecomendation(defectRecomendation);
}
/**
* @see com.vst.service.DefectRecomendationManager#removeDefectRecomendation(String defectRecomendationId)
*/
public void removeDefectRecomendation(final String defectRecomendationId) {
dao.removeDefectRecomendation(new Integer(defectRecomendationId));
}
public List getConnectedRefferences(final String defectRecomendationId){
return new ArrayList();
}
}