/*
* @(#)IeeeCDFTielineDataMapper.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 02/11/2008
*
* Revision History
* ================
*
*/
package org.ieee.odm.adapter.ieeecdf.mapper;
import org.ieee.odm.adapter.ieeecdf.parser.IeeeCDFTieLineDataParser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.IODMModelParser;
import org.ieee.odm.model.aclf.AclfModelParser;
import org.ieee.odm.schema.TielineXmlType;
/**
* IEEE CDF tie-line record ODM mapper
*
* @author mzhou
*
*/
public class IeeeCDFTielineDataMapper extends AbstractIeeeCDFDataMapper {
/**
* constructor
*/
public IeeeCDFTielineDataMapper() {
this.dataParser = new IeeeCDFTieLineDataParser();
}
@Override public void mapInputLine(final String str, AclfModelParser parser) throws ODMException {
dataParser.parseFields(str);
final TielineXmlType tieLine = parser.createTieline();
// Columns 1- 4 Metered bus number [I] *
// Columns 7-8 Metered area number [I] *
final String meteredBusId = IODMModelParser.BusIdPreFix + dataParser.getString("MeteredBusNum");
final String meteredAreaNo = dataParser.getString("MeteredAreaNum");
// Columns 11-14 Non-metered bus number [I] *
// Columns 17-18 Non-metered area number [I] *
final String nonMeteredBusId = IODMModelParser.BusIdPreFix + dataParser.getString("NotMeteredBusNum");
final String nonMeteredAreaNo = dataParser.getString("NotMeteredAreaNum");
// Column 21 Circuit number
int cirNo = dataParser.getInt("CirNum", 0);
tieLine.setMeteredBus(parser.createBusRef(meteredBusId));
tieLine.setNonMeteredBus(parser.createBusRef(nonMeteredBusId));
tieLine.setMeteredArea(meteredAreaNo);
tieLine.setNonMeteredArea(nonMeteredAreaNo);
tieLine.setCirId(new Integer(cirNo).toString());
}
}