package net.sf.tomp.xtcl.source; import javax.xml.transform.sax.SAXSource; import net.sf.tomp.xml.sax.ParametrizedXMLReader; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; /** * Creates either a normal SAXSource or XTSAXSource which is parametrized. * * @author tomp */ public class XTSourceFactoryImpl implements XTSourceFactory { /** * Creates either a normal SAXSource or XTSAXSource which is parametrized. * * @param className class name of XMLReader used to create the SAXSource * @param is InputSource to be read by the XMLReader * @return the SAXSource or XTSAXSource * @throws ClassNotFoundException * @throws InstantiationException * @throws IllegalAccessException */ public SAXSource newSAXSource(String className, InputSource is) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Class readerClass = Class.forName(className); XMLReader f = (XMLReader) readerClass.newInstance(); if (f instanceof ParametrizedXMLReader) { return new XTSAXSource((ParametrizedXMLReader) f, is); } else { return new SAXSource(f, is); } } } /* * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License. The * Original Code is: all this file. The Initial Developer of the Original Code * is: Tomas Pitner, Masaryk University in Brno, Czech Republic. Contributor(s): */