package org.ieee.odm.adapter.psse.parser.dynamic.exciter; import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion; import org.ieee.odm.adapter.psse.parser.aclf.BasePSSEDataParser; import org.ieee.odm.common.ODMException; import org.ieee.odm.model.base.ODMModelStringUtil; public class PSSEExcIEEE2005ST3AParser extends BasePSSEDataParser { public PSSEExcIEEE2005ST3AParser(PsseVersion ver) { super(ver); } /* * PSS/E ESST3A type -> IEEE 1992/2005 Type ST3A * IBUS, 'ESST3A', TR, VIMAX,VIMIN, KM,TC,TB, KA, TA, VRMAX, VRMIN, KG, KP, KI, VBMAX, KC, XL,VGMAX, THETAP, TM, VMMAX, VMMIN/ */ @Override public String[] getMetadata() { return new String[]{ // 0----------1----------2----------3----------4 "IBUS", "Type", "MachId", "TR", "VIMAX", // 5----------6----------7----------8----------9 "VIMIN", "KM", "TC", "TB", "KA", // 10----------11----------12--------13--------14 "TA", "VRMAX", "VRMIN", "KG", "KP", // 15----------16----------17--------18--------19 "KI", "VBMAX", "KC", "XL", "VGMAX", // 20----------21----------22--------23--------24 "THETAP", "TM", "VMMAX", "VMMIN" }; } @Override public void parseFields(final String lineStr) throws ODMException { this.clearNVPairTableData(); // split the line string by multi-blanks String[] strAry=lineStr.split("\\s+"); int cnt =strAry.length; for (int i = 0; i <cnt ; i++){ if(i==1){//Model type, need to trim the quote setValue(i,ODMModelStringUtil.trimQuote(strAry[i].trim())); } else setValue(i, strAry[i].trim()); } } }