MDLV3000Reader extends DefaultChemObjectReader { @Override public boolean accepts(Class<? extends IChemObject> classObject) { Class<?>[] interfaces = classObject.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { if (IAtomContainer.class.equals(interfaces[i])) return true; } if (IAtomContainer.class.equals(classObject)) return true; Class superClass = classObject.getSuperclass(); if (superClass != null) return this.accepts(superClass); return false; } MDLV3000Reader(Reader in);  MDLV3000Reader(Reader in, Mode mode);  MDLV3000Reader(InputStream input);  MDLV3000Reader(InputStream input, Mode mode);  MDLV3000Reader(); @Override IResourceFormat getFormat(); @Override void setReader(Reader input); @Override void setReader(InputStream input); @Override boolean accepts(Class<? extends IChemObject> classObject); @Override T read(T object); IAtomContainer readMolecule(IChemObjectBuilder builder); IAtomContainer readConnectionTable(IChemObjectBuilder builder); String readHeader(IAtomContainer readData); void readAtomBlock(IAtomContainer readData); void readBondBlock(IAtomContainer readData); void readSGroup(IAtomContainer readData); String exhaustStringTokenizer(StringTokenizer tokenizer); String readLine(); boolean isReady(); @Override void close();  }
@Test public void testAccepts() { MDLV3000Reader reader = new MDLV3000Reader(); Assert.assertTrue(reader.accepts(AtomContainer.class)); }