@Override
public VoltageLevel add() {
String id = checkAndGetUniqueId();
ValidationUtil.checkNominalV(this, nominalV);
ValidationUtil.checkVoltageLimits(this, lowVoltageLimit, highVoltageLimit);
ValidationUtil.checkTopologyKind(this, topologyKind);
VoltageLevelExt voltageLevel;
switch (topologyKind) {
case NODE_BREAKER:
voltageLevel = new NodeBreakerVoltageLevel(id, getName(), substation, nominalV, lowVoltageLimit, highVoltageLimit);
break;
case BUS_BREAKER:
voltageLevel = new BusBreakerVoltageLevel(id, getName(), substation, nominalV, lowVoltageLimit, highVoltageLimit);
break;
default:
throw new AssertionError();
}
getNetwork().getObjectStore().checkAndAdd(voltageLevel);
substation.addVoltageLevel(voltageLevel);
getNetwork().getListeners().notifyCreation(voltageLevel);
return voltageLevel;
}