return;
}
// recover kpi instance from Id
IKpiInstanceDAO kpiInstDAO=DAOFactory.getKpiInstanceDAO();
KpiInstance kpiInst=kpiInstDAO.loadKpiInstanceById(kpiInstId);
// main attributes
SbiKpiInstance hibKpiInst = new SbiKpiInstance();
hibKpiInst.setIdKpiInstance(kpiInst.getKpiInstanceId());
hibKpiInst.setBeginDt(kpiInst.getD());
hibKpiInst.setWeight(kpiInst.getWeight());
hibKpiInst.setTarget(kpiInst.getTarget());
if(kpiInst.getChartTypeId()!=null){
SbiDomains chartType=(SbiDomains)session.load(SbiDomains.class, kpiInst.getChartTypeId());
hibKpiInst.setChartType(chartType);
}
// Kpi
if (kpiInst.getKpi()!=null) {
insertKpi(kpiInst.getKpi(), session);
SbiKpi sbiKpi= (SbiKpi) session.load(SbiKpi.class, kpiInst.getKpi());
hibKpiInst.setSbiKpi(sbiKpi);
}
// load threshold
if (kpiInst.getThresholdId() != null) {
IThresholdDAO thresholdDAO=DAOFactory.getThresholdDAO();
Threshold th=thresholdDAO.loadThresholdById(kpiInst.getThresholdId());
insertThreshold(th, session);
SbiThreshold sbiTh= (SbiThreshold) session.load(SbiThreshold.class, th.getId());
hibKpiInst.setSbiThreshold(sbiTh);
}
// load measureUnit!
if(kpiInst.getScaleCode()!=null){
IMeasureUnitDAO muDao=DAOFactory.getMeasureUnitDAO();
MeasureUnit mu=muDao.loadMeasureUnitByCd(kpiInst.getScaleCode());
insertMeasureUnit(mu, session);
SbiMeasureUnit sbiMu= (SbiMeasureUnit) session.load(SbiMeasureUnit.class, mu.getId());
hibKpiInst.setSbiMeasureUnit(sbiMu);
}
// Insert KPI Instance
Transaction tx = session.beginTransaction();
session.save(hibKpiInst);
tx.commit();
// after inserted Kpi Instance insert periods
// load all alarms
ISbiAlarmDAO sbiAlarmDAO=DAOFactory.getAlarmDAO();
List<Alarm> alarmsToLoad=sbiAlarmDAO.loadAllByKpiInstId(kpiInstId);
for (Iterator iterator = alarmsToLoad.iterator(); iterator.hasNext();) {
Alarm alarm = (Alarm) iterator.next();
insertAlarm(alarm, session);
}
// after inserted Kpi Instance insert periods
// Load all the kpi inst period and the periodicity s well
IKpiInstPeriodDAO kpiInstPeriodDao=DAOFactory.getKpiInstPeriodDAO();
List kpiInstPeriodList=kpiInstPeriodDao.loadKpiInstPeriodId(kpiInst.getKpiInstanceId());
for (Iterator iterator = kpiInstPeriodList.iterator(); iterator.hasNext();) {
KpiInstPeriod modKpiInst = (KpiInstPeriod) iterator.next();
insertKpiInstancePeriod(modKpiInst, session);
}