package converter;
import genericbcm.*;
import java.util.HashMap;
/**
* Created by miguel on 04-09-2014.
*/
public class GenericBcmManager {
private GenericbcmFactory factory;
private BCMModel model;
private HashMap<String, Object> elements;
public GenericBcmManager() {
factory = GenericbcmFactory.eINSTANCE;
model = factory.createBCMModel();
elements = new HashMap<String, Object>();
}
public void addMergedImpactTable(String unitId, String tableId, String time, String financial, String legal, String severity, String external) {
BusinessImpactTableRow table = factory.createBusinessImpactTableRow();
table.setUuid(tableId);
if (time != null && !time.equals(""))
table.setTime(Double.valueOf(time));
if (financial != null && !financial.equals(""))
table.setFinancial(Double.valueOf(financial));
if (legal != null && !legal.equals(""))
table.setLegal(Double.valueOf(legal));
if (severity != null && !severity.equals(""))
table.setSeverity(Double.valueOf(severity));
if (external != null && !external.equals(""))
table.setExternal(Double.valueOf(external));
/* if (elements.containsKey(unitId))
((Unit)elements.get(unitId))
*/
}
public void addFailure(String unitId, String id, String name, String description) {
FailureEffect failure = factory.createFailureEffect();
failure.setUuid(id);
if (name != null && !name.equals(""))
failure.setName(name);
if (description != null && !description.equals(""))
failure.setDescription(description);
elements.put(id, failure);
}
public void addRecovery(String failureId, String id, String name, String description, String cost, String recoveryTimeMax, String recoveryTimeMin, String weight, String deps) {
Recovery recovery = factory.createRecovery();
recovery.setUuid(id);
if (name != null && !name.equals(""))
recovery.setName(name);
if (description != null && !description.equals(""))
recovery.setDescription(description);
if (cost != null && !cost.equals(""))
recovery.setCost(Double.valueOf(cost));
if (recoveryTimeMax != null && !recoveryTimeMax.equals(""))
recovery.setRecoveryTimeMax(Double.valueOf(recoveryTimeMax));
if (recoveryTimeMin != null && !recoveryTimeMin.equals(""))
recovery.setRecoveryTimeMin(Double.valueOf(recoveryTimeMin));
if (weight != null && !weight.equals(""))
recovery.setWeight(Integer.valueOf(weight));
if (deps != null && !deps.equals(""))
recovery.setDeps(Integer.valueOf(deps));
if (elements.containsKey(failureId))
((FailureEffect) elements.get(failureId)).setRecovery(recovery);
else
System.out.println("LOG: Recovery " + name + "could not be added because parent failure element does not exist");
elements.put(id, recovery);
}
public void addDependencyToUnit(String unitId, String id, String name, String description, String on, String from) {
Dependency dependency = factory.createDependency();
dependency.setUuid(id);
if (name != null && !name.equals(""))
dependency.setName(name);
if (description != null && !description.equals(""))
dependency.setDescription(description);
if(from != null && !from.equals(""))
dependency.setFrom(from);
if(on != null && !on.equals("")){
if (elements.containsKey(on))
dependency.setOn((Unit) elements.get(on));
}
}
}