/* * @(#)PSSEAreaDataMapper.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 static org.ieee.odm.ODMObjectFactory.OdmObjFactory; import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion; import org.ieee.odm.adapter.psse.parser.aclf.PSSEAreaDataParser; import org.ieee.odm.common.ODMException; import org.ieee.odm.model.IODMModelParser; import org.ieee.odm.model.aclf.BaseAclfModelParser; import org.ieee.odm.model.base.BaseDataSetter; import org.ieee.odm.schema.ActivePowerUnitType; import org.ieee.odm.schema.ExchangeAreaXmlType; import org.ieee.odm.schema.LoadflowNetXmlType; import org.ieee.odm.schema.NetworkXmlType; public class PSSEAreaDataMapper extends BasePSSEDataMapper{ public PSSEAreaDataMapper(PsseVersion ver) { super(ver); this.dataParser = new PSSEAreaDataParser(ver); } public void procLineString(String lineStr, BaseAclfModelParser<? extends NetworkXmlType> parser) throws ODMException { dataParser.parseFields(lineStr); LoadflowNetXmlType baseCaseNet = (LoadflowNetXmlType) parser.getNet(); if (baseCaseNet.getAreaList() == null) baseCaseNet.setAreaList(OdmObjFactory.createNetworkXmlTypeAreaList()); ExchangeAreaXmlType area = OdmObjFactory.createExchangeAreaXmlType(); baseCaseNet.getAreaList().getArea().add(area); /* I, ISW, PDES, PTOL, 'ARNAM' 1, 0, 0.000, 1.000,'NEPEX ' */ int i = this.dataParser.getInt("I"); int isw = this.dataParser.getInt("ISW"); double pdes = this.dataParser.getDouble("PDES"); double ptol = this.dataParser.getDouble("PTOL"); String arnam = this.dataParser.getString("ARNAM"); area.setId(new Integer(i).toString()); area.setNumber(i); area.setName(arnam); if (isw > 0) { area.setSwingBusId(parser.createBusRef(IODMModelParser.BusIdPreFix+isw)); area.setDesiredExchangePower(BaseDataSetter.createActivePowerValue(pdes, ActivePowerUnitType.MW)); area.setExchangeErrTolerance(BaseDataSetter.createActivePowerValue(ptol, ActivePowerUnitType.MW)); } } }