/* * @(#)PSSELoadDataMapper.java * * Copyright (C) 2006 www.interpss.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * @Author Mike Zhou * @Version 1.0 * @Date 09/15/2006 * * Revision History * ================ * */ package org.ieee.odm.adapter.psse.mapper.aclf; import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion; import org.ieee.odm.adapter.psse.parser.aclf.PSSEFixedShuntDataParser; import org.ieee.odm.common.ODMException; import org.ieee.odm.common.ODMLogger; import org.ieee.odm.model.IODMModelParser; import org.ieee.odm.model.aclf.AclfParserHelper; import org.ieee.odm.model.aclf.BaseAclfModelParser; import org.ieee.odm.model.base.BaseDataSetter; import org.ieee.odm.schema.BusXmlType; import org.ieee.odm.schema.LoadflowBusXmlType; import org.ieee.odm.schema.LoadflowShuntYDataXmlType; import org.ieee.odm.schema.NetworkXmlType; import org.ieee.odm.schema.YUnitType; public class PSSEFixedShuntDataMapper extends BasePSSEDataMapper{ public PSSEFixedShuntDataMapper(PsseVersion ver) { super(ver); this.dataParser = new PSSEFixedShuntDataParser(ver); } /* "I", "ID", "STATUS", "GL", "BL" */ public void procLineString(String lineStr, BaseAclfModelParser<? extends NetworkXmlType> parser) throws ODMException { //procLineString(lineStr, version); this.dataParser.parseFields(lineStr); int i = dataParser.getInt("I"); final String busId = IODMModelParser.BusIdPreFix+i; BusXmlType busRecXml = parser.getBus(busId); if (busRecXml == null){ ODMLogger.getLogger().severe("Bus "+ busId+ " not found in the network"); return; } LoadflowShuntYDataXmlType contribShutY; contribShutY = AclfParserHelper.createContriShuntY((LoadflowBusXmlType)busRecXml); String id = dataParser.getString("ID"); contribShutY.setId(id); contribShutY.setName("ShuntY:" + id + "(" + i + ")"); contribShutY.setDesc("PSSE ShuntY " + id + " at Bus " + i); int status = dataParser.getInt("STATUS"); contribShutY.setOffLine(status!=1); double g = dataParser.getDouble("GL", 0.0); double b = dataParser.getDouble("BL", 0.0); if (g != 0.0 || b != 0.0) contribShutY.setY(BaseDataSetter.createYValue(g, b, YUnitType.MVAR)); } }