/*
* @(#)PSSEZoneDataMapper.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.PSSEZoneDataParser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.aclf.BaseAclfModelParser;
import org.ieee.odm.schema.LoadflowNetXmlType;
import org.ieee.odm.schema.NetZoneXmlType;
import org.ieee.odm.schema.NetworkXmlType;
public class PSSEZoneDataMapper extends BasePSSEDataMapper{
public PSSEZoneDataMapper(PsseVersion ver) {
super(ver);
this.dataParser = new PSSEZoneDataParser(ver);
}
public void procLineString(String lineStr, BaseAclfModelParser<? extends NetworkXmlType> parser) throws ODMException {
dataParser.parseFields(lineStr);
/*
* Format: I, �ZONAME�
*/
int i = this.dataParser.getInt("I");
String name = this.dataParser.getString("ZONAME");
LoadflowNetXmlType baseCaseNet = (LoadflowNetXmlType) parser.getNet();
if (baseCaseNet.getLossZoneList() == null)
baseCaseNet.setLossZoneList(OdmObjFactory.createNetworkXmlTypeLossZoneList());
NetZoneXmlType zone = OdmObjFactory.createNetZoneXmlType();
baseCaseNet.getLossZoneList().getLossZone().add(zone);
zone.setId(new Integer(i).toString());
zone.setNumber(i);
zone.setName(name);
}
}