Class FormatFactory


  • public class FormatFactory
    extends Object
    A factory for recognizing chemical file formats. Formats of GZiped files can be detected too. A typical example is:
    
       StringReader stringReader = new StringReader("<molecule/>");
       IChemFormat format = new FormatFactory().guessFormat(stringReader);
     
    Author:
    Egon Willighagen <egonw@sci.kun.nl>, Bradley A. Smith <bradley@baysmith.com>
    Source code:
    main
    Belongs to CDK module:
    ioformats
    • Constructor Detail

      • FormatFactory

        public FormatFactory()
        Constructs a ReaderFactory which tries to detect the format in the first 65536 chars.
      • FormatFactory

        public FormatFactory​(int headerLength)
        Constructs a ReaderFactory which tries to detect the format in the first given number of chars.
        Parameters:
        headerLength - length of the header in number of chars
    • Method Detail

      • registerFormat

        public void registerFormat​(IChemFormatMatcher format)
        Registers a format for detection.
      • guessFormat

        public IChemFormat guessFormat​(Reader input)
                                throws IOException
        Creates a String of the Class name of the IChemObject reader for this file format. The input is read line-by-line until a line containing an identifying string is found.

        The ReaderFactory detects more formats than the CDK has Readers for.

        This method is not able to detect the format of gziped files. Use guessFormat(InputStream) instead for such files.

        Returns:
        The guessed IChemFormat or null if the file format is not recognized.
        Throws:
        IOException - if an I/O error occurs
        IllegalArgumentException - if the input is null
        See Also:
        guessFormat(InputStream)