package org.ieee.odm.adapter.psse.mapper.acsc;
import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion;
import org.ieee.odm.adapter.psse.mapper.aclf.BasePSSEDataMapper;
import org.ieee.odm.adapter.psse.parser.acsc.PSSEMachinePosSeqZParser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.IODMModelParser;
import org.ieee.odm.model.acsc.AcscParserHelper;
import org.ieee.odm.model.acsc.BaseAcscModelParser;
import org.ieee.odm.model.base.BaseDataSetter;
import org.ieee.odm.schema.NetworkXmlType;
import org.ieee.odm.schema.ShortCircuitBusEnumType;
import org.ieee.odm.schema.ShortCircuitBusXmlType;
import org.ieee.odm.schema.ShortCircuitGenDataXmlType;
import org.ieee.odm.schema.ZUnitType;
public class PSSEMachinePosSeqZMapper extends BasePSSEDataMapper{
public PSSEMachinePosSeqZMapper(PsseVersion ver) {
super(ver);
this.dataParser = new PSSEMachinePosSeqZParser(ver);
}
/*
* Format
* I, ID, ZRPOS, ZXPOS
*/
public void procLineString(String lineStr, BaseAcscModelParser<? extends NetworkXmlType> parser) throws ODMException {
dataParser.parseFields(lineStr);
String machId = dataParser.getString("ID");
double ZRPOS = dataParser.getDouble("ZRPOS");
double ZXPOS = dataParser.getDouble("ZXPOS");
int i = dataParser.getInt("I");
final String busId = IODMModelParser.BusIdPreFix+i;
ShortCircuitBusXmlType acscBus=(ShortCircuitBusXmlType) parser.getBus(busId);
//add SC code
acscBus.setScCode(ShortCircuitBusEnumType.CONTRIBUTING);
ShortCircuitGenDataXmlType scGenData= AcscParserHelper.getAcscContritueGen(acscBus, machId);
if(scGenData==null){
scGenData=AcscParserHelper.createAcscContributeGen(acscBus);
scGenData.setId(machId);
}
scGenData.setPotiveZ(BaseDataSetter.createZValue(ZRPOS,ZXPOS, ZUnitType.PU));
}
}