class PCSubstanceXMLReader extends DefaultChemObjectReader {

    @Override
    public <T extends IChemObject> T read(T object) throws CDKException {
        if (object instanceof IAtomContainer) {
            try {
                parserHelper = new PubChemXMLHelper(object.getBuilder());
                builder = object.getBuilder();
                return (T) readMolecule();
            } catch (IOException e) {
                throw new CDKException("An IO Exception occurred while reading the file.", e);
            } catch (CDKException e) {
                throw e;
            } catch (Exception e) {
                throw new CDKException("An error occurred: " + e.getMessage(), e);
            }
        } else {
            throw new CDKException("Only supported is reading of ChemFile objects.");
        }
    }

    public  PCSubstanceXMLReader(Reader input);
    public  PCSubstanceXMLReader(InputStream input);
    public  PCSubstanceXMLReader();

}