public Kpi toKpi(SbiKpi kpi) throws EMFUserError {
logger.debug("IN");
Kpi toReturn = new Kpi();
String code = kpi.getCode();
String description = kpi.getDescription();
String metric = kpi.getMetric();
String interpretation = kpi.getInterpretation();
String inputAttributes=kpi.getInputAttributes();
String modelReference=kpi.getModelReference();
String targetAudience=kpi.getTargetAudience();
Boolean isParent = false;
if (kpi.getFlgIsFather() != null
&& kpi.getFlgIsFather().equals(new Character('T'))) {
isParent = true;
}
Integer kpiId = kpi.getKpiId();
String kpiName = kpi.getName();
SbiDataSetConfig dsC = kpi.getSbiDataSet();
Integer dsId = null;
String dsLabel = null;
if (dsC != null) {
dsId = dsC.getDsId();
dsLabel = dsC.getLabel();
}
IThresholdDAO thresholdDAO=DAOFactory.getThresholdDAO();
SbiThreshold thresh = kpi.getSbiThreshold();
if(thresh!=null){
Threshold threshold=thresholdDAO.toThreshold(thresh);
toReturn.setThreshold(threshold);
logger.debug("Kpi threshold setted");
}
Double standardWeight = kpi.getWeight();
// Gets the father
SbiKpi dad = kpi.getSbiKpi();
Boolean isRoot = false;
Integer father = null;
if (dad != null) {
father = dad.getKpiId();
} else {
isRoot = true;
}
String scaleCode = "";
String scaleName = "";
if (kpi.getSbiMeasureUnit() != null) {
scaleCode = kpi.getSbiMeasureUnit().getScaleCd();
scaleName = kpi.getSbiMeasureUnit().getScaleNm();
}
Set kpiDocs = kpi.getSbiKpiDocumentses();
List kpiDocsList = new ArrayList();
if(kpiDocs!=null && !kpiDocs.isEmpty()){
Iterator i = kpiDocs.iterator();
while (i.hasNext()) {
SbiKpiDocument doc = (SbiKpiDocument) i.next();
if(doc!=null){
KpiDocuments temp = new KpiDocuments();
temp.setBiObjId(doc.getSbiObjects().getBiobjId());
temp.setBiObjLabel(doc.getSbiObjects().getLabel());
temp.setKpiDocId(doc.getIdKpiDoc());
temp.setKpiId(doc.getSbiKpi().getKpiId());
kpiDocsList.add(temp);
}
}
}
// add also associated UDP
List udpValues = DAOFactory.getUdpDAOValue().findByReferenceId(kpiId, "KPI");
toReturn.setUdpValues(udpValues);
toReturn.setDescription(description);
logger.debug("Kpi description setted");
toReturn.setSbiKpiDocuments(kpiDocsList);
logger.debug("Kpi Documentlabels setted");
toReturn.setIsParent(isParent);
logger.debug("Kpi isParent setted");
toReturn.setIsRoot(isRoot);
logger.debug("Kpi isRoot setted");
toReturn.setKpiDsId(dsId);
toReturn.setDsLabel(dsLabel);
logger.debug("Kpi dataset setted");
toReturn.setKpiId(kpiId);
logger.debug("Kpi Id setted");
toReturn.setKpiName(kpiName);
logger.debug("Kpi name setted");
toReturn.setStandardWeight(standardWeight);
logger.debug("Kpi weight setted");
toReturn.setIsAdditive(kpi.getIsAdditive());
toReturn.setCode(code);
logger.debug("Kpi code setted");
toReturn.setMetric(metric);
logger.debug("Kpi metric setted");
toReturn.setScaleCode(scaleCode);
logger.debug("Kpi scaleCode setted");
toReturn.setScaleName(scaleName);
logger.debug("Kpi scaleName setted");
toReturn.setInterpretation(interpretation);
logger.debug("Interpretation setted");
toReturn.setModelReference(modelReference);
logger.debug("modelReference setted");
toReturn.setTargetAudience(targetAudience);
logger.debug("targetAudience setted");
toReturn.setInputAttribute(inputAttributes);
logger.debug("inputAttributes setted");
if(kpi.getSbiDomainsByKpiType()!=null){
toReturn.setKpiTypeId(kpi.getSbiDomainsByKpiType().getValueId());
toReturn.setKpiTypeCd(kpi.getSbiDomainsByKpiType().getValueCd());
}
if(kpi.getSbiDomainsByMeasureType()!=null){
toReturn.setMeasureTypeId(kpi.getSbiDomainsByMeasureType().getValueId());
toReturn.setMeasureTypeCd(kpi.getSbiDomainsByMeasureType().getValueCd());
}
if(kpi.getSbiDomainsByMetricScaleType()!=null){
toReturn.setMetricScaleId(kpi.getSbiDomainsByMetricScaleType().getValueId());
toReturn.setMetricScaleCd(kpi.getSbiDomainsByMetricScaleType().getValueCd());
}
logger.debug("OUT");
return toReturn;
}