/*
* @(#)ODMObjectFactory.java
*
* Copyright (C) 2008-2010 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 12/04/2010
*
* Revision History
* ================
*
*/
package org.ieee.odm;
import org.ieee.odm.adapter.IODMAdapter;
import org.ieee.odm.adapter.bpa.BPAAdapter;
import org.ieee.odm.adapter.ge.GePslfAdapter;
import org.ieee.odm.adapter.ieeecdf.IeeeCDFAdapter;
import org.ieee.odm.adapter.opf.matpower.OpfMatpowerAdapter;
import org.ieee.odm.adapter.psse.PSSEAdapter;
import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion;
import org.ieee.odm.adapter.psse.v26.PSSEV26Adapter;
import org.ieee.odm.adapter.pwd.PWDAdapterForContingency;
import org.ieee.odm.adapter.pwd.PowerWorldAdapter;
import org.ieee.odm.adapter.ucte.UCTE_DEFAdapter;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.model.aclf.AclfModelParser;
import org.ieee.odm.model.acsc.AcscModelParser;
import org.ieee.odm.model.dc.DcSystemModelParser;
import org.ieee.odm.model.dist.DistModelParser;
import org.ieee.odm.model.dstab.DStabModelParser;
import org.ieee.odm.model.opf.OpfModelParser;
import org.ieee.odm.schema.ObjectFactory;
/**
* ODM object factory
*
* @author mzhou
*
*/
public class ODMObjectFactory {
/** ODM xml schema factor object*/
public static ObjectFactory OdmObjFactory = null;
static {
OdmObjFactory = new ObjectFactory();
}
/**
* create an Aclf ODM model parser
*
* @return
*/
public static AclfModelParser createAclfModelParser() {
AclfModelParser parser = new AclfModelParser();
return parser;
}
/**
* create a DC system ODM model parser
*
* @return
*/
public static DcSystemModelParser createDcSystemModelParser() {
DcSystemModelParser parser = new DcSystemModelParser();
return parser;
}
/**
* create a distribution system ODM model parser
*
* @return
*/
public static DistModelParser createDistModelParser() {
DistModelParser parser = new DistModelParser();
return parser;
}
/**
* create an OFP ODM model parser
*
* @return
*/
public static OpfModelParser createOpfModelParser() {
OpfModelParser parser = new OpfModelParser(OpfModelParser.OpfNetType.OPF);
return parser;
}
/**
* create a DStability ODM model parser
*
* @return
*/
public static DStabModelParser createDStabModelParser() {
DStabModelParser parser = new DStabModelParser();
return parser;
}
/**
* create an Acsc ODM model parser
*
* @return
*/
public static AcscModelParser createAcscModelParser() {
AcscModelParser parser = new AcscModelParser();
return parser;
}
/**
* create an input file adapter for the file format
*
* @param f file format
* @return
*/
public static IODMAdapter createODMAdapter(ODMFileFormatEnum f) throws ODMException {
if ( f == ODMFileFormatEnum.IeeeCDF )
return new IeeeCDFAdapter();
else if ( f == ODMFileFormatEnum.PsseV26 )
return new PSSEV26Adapter();
else if ( f == ODMFileFormatEnum.PsseV30 )
return new PSSEAdapter(PsseVersion.PSSE_30);
else if ( f == ODMFileFormatEnum.PsseV31 )
return new PSSEAdapter(PsseVersion.PSSE_31);
else if ( f == ODMFileFormatEnum.PsseV32 )
return new PSSEAdapter(PsseVersion.PSSE_32);
else if ( f == ODMFileFormatEnum.PsseV33 )
return new PSSEAdapter(PsseVersion.PSSE_33);
else if ( f == ODMFileFormatEnum.GePSLF )
return new GePslfAdapter(GePslfAdapter.Version.PSLF15);
else if ( f == ODMFileFormatEnum.UCTE )
return new UCTE_DEFAdapter();
else if ( f == ODMFileFormatEnum.BPA )
return new BPAAdapter();
else if ( f == ODMFileFormatEnum.PWD )
return new PowerWorldAdapter();
else if ( f == ODMFileFormatEnum.PWD_Contingency )
return new PWDAdapterForContingency();
else if ( f == ODMFileFormatEnum.MatPower )
return new OpfMatpowerAdapter();
throw new ODMException("Error - unkown ODM file type");
}
}