Class DefaultFTPFileEntryParserFactory

java.lang.Object
org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory
All Implemented Interfaces:
FTPFileEntryParserFactory

public class DefaultFTPFileEntryParserFactory extends Object implements FTPFileEntryParserFactory
This is the default implementation of the FTPFileEntryParserFactory interface. This is the implementation that will be used by org.apache.commons.net.ftp.FTPClient.listFiles() if no other implementation has been specified.
See Also:
  • Field Details

  • Constructor Details

    • DefaultFTPFileEntryParserFactory

      public DefaultFTPFileEntryParserFactory()
  • Method Details

    • createFileEntryParser

      public FTPFileEntryParser createFileEntryParser(FTPClientConfig config) throws ParserInitializationException

      Implementation extracts a key from the supplied FTPClientConfig parameter and creates an object implementing the interface FTPFileEntryParser and uses the supplied configuration to configure it.

      Note that this method will generally not be called in scenarios that call for autodetection of parser type but rather, for situations where the user knows that the server uses a non-default configuration and knows what that configuration is.

      Specified by:
      createFileEntryParser in interface FTPFileEntryParserFactory
      Parameters:
      config - A FTPClientConfig used to configure the parser created
      Returns:
      the FTPFileEntryParser so created.
      Throws:
      ParserInitializationException - Thrown on any exception in instantiation
      NullPointerException - if config is null
      Since:
      1.4
    • createFileEntryParser

      public FTPFileEntryParser createFileEntryParser(String key)
      This default implementation of the FTPFileEntryParserFactory interface works according to the following logic: First it attempts to interpret the supplied key as a fully qualified class name (default package is not allowed) of a class implementing the FTPFileEntryParser interface. If that succeeds, a parser object of this class is instantiated and is returned; otherwise it attempts to interpret the key as an identifier commonly used by the FTP SYST command to identify systems.

      If key is not recognized as a fully qualified class name known to the system, this method will then attempt to see whether it contains a string identifying one of the known parsers. This comparison is case-insensitive. The intent here is where possible, to select as keys strings which are returned by the SYST command on the systems which the corresponding parser successfully parses. This enables this factory to be used in the auto-detection system.

      Specified by:
      createFileEntryParser in interface FTPFileEntryParserFactory
      Parameters:
      key - should be a fully qualified class name corresponding to a class implementing the FTPFileEntryParser interface
      OR
      a string containing (case-insensitively) one of the following keywords:
      Returns:
      the FTPFileEntryParser corresponding to the supplied key.
      Throws:
      ParserInitializationException - thrown if for any reason the factory cannot resolve the supplied key into an FTPFileEntryParser.
      See Also:
    • createFileEntryParser

      private FTPFileEntryParser createFileEntryParser(String key, FTPClientConfig config)
    • createMVSEntryParser

      public FTPFileEntryParser createMVSEntryParser()
    • createNetwareFTPEntryParser

      public FTPFileEntryParser createNetwareFTPEntryParser()
    • createNTFTPEntryParser

      public FTPFileEntryParser createNTFTPEntryParser()
    • createNTFTPEntryParser

      private FTPFileEntryParser createNTFTPEntryParser(FTPClientConfig config)
      Creates an NT FTP parser: if the config exists, and the system key equals FTPClientConfig.SYST_NT then a plain NTFTPEntryParser is used, otherwise a composite of NTFTPEntryParser and UnixFTPEntryParser is used.
      Parameters:
      config - the config to use, may be null
      Returns:
      the parser
    • createOS2FTPEntryParser

      public FTPFileEntryParser createOS2FTPEntryParser()
    • createOS400FTPEntryParser

      public FTPFileEntryParser createOS400FTPEntryParser()
    • createOS400FTPEntryParser

      private FTPFileEntryParser createOS400FTPEntryParser(FTPClientConfig config)
      Creates an OS400 FTP parser: if the config exists, and the system key equals FTPClientConfig.SYST_OS400 then a plain OS400FTPEntryParser is used, otherwise a composite of OS400FTPEntryParser and UnixFTPEntryParser is used.
      Parameters:
      config - the config to use, may be null
      Returns:
      the parser
    • createUnixFTPEntryParser

      public FTPFileEntryParser createUnixFTPEntryParser()
    • createVMSVersioningFTPEntryParser

      public FTPFileEntryParser createVMSVersioningFTPEntryParser()