code: @Override
      public <T extends IChemObject> T read(T object) throws CDKException {
          if (object instanceof IChemFile) {
              try {
                  return (T) readChemFile((IChemFile) object);
              } catch (IOException e) {
                  logger.error("Input/Output error while reading from input: " + e.getMessage());
                  throw new CDKException(e.getMessage(), e);
              }
          } else if (object instanceof ICrystal) {
              try {
                  return (T) readCrystal((ICrystal) object);
              } catch (IOException e) {
                  logger.error("Input/Output error while reading from input: " + e.getMessage());
                  throw new CDKException(e.getMessage(), e);
              }
          } else {
              throw new CDKException("Only supported is reading of ChemFile.");
          }
      }
docs: Read a ChemFile from input.
  
  @return the content in a ChemFile object