org.apache.commons.net.ftp.parser

## Class ConfigurableFTPFileEntryParserImpl

- java.lang.Object
- - org.apache.commons.net.ftp.FTPFileEntryParserImpl
  - - org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl
    - - org.apache.commons.net.ftp.parser.ConfigurableFTPFileEntryParserImpl

- All Implemented Interfaces:
    Configurable, FTPFileEntryParser
  Direct Known Subclasses:
    MacOsPeterFTPEntryParser, MVSFTPEntryParser, NetwareFTPEntryParser, NTFTPEntryParser, OS2FTPEntryParser, OS400FTPEntryParser, UnixFTPEntryParser, VMSFTPEntryParser

      public abstract class ConfigurableFTPFileEntryParserImpl
      extends RegexFTPFileEntryParserImpl
      implements Configurable

  This abstract class implements the common timestamp parsing algorithm for all the concrete parsers. Classes derived from this one will parse file listings via a supplied regular expression that pulls out the date portion as a separate string which is passed to the underlying `delegate` to handle parsing of the file timestamp.

  This class also implements the `Configurable` interface to allow the parser to be configured from the outside.

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl

      `_matcher_`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConfigurableFTPFileEntryParserImpl(String regex)` constructor for this abstract class.
    `ConfigurableFTPFileEntryParserImpl(String regex, int flags)` constructor for this abstract class.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(FTPClientConfig config)` Implements the `Configurable` interface.
    `protected abstract FTPClientConfig` | `getDefaultConfiguration()` Each concrete subclass must define this member to create a default configuration to be used when that subclass is instantiated without a `FTPClientConfig` parameter being specified.
    `Calendar` | `parseTimestamp(String timestampStr)` This method is called by the concrete parsers to delegate timestamp parsing to the timestamp parser.

    - ### Methods inherited from class org.apache.commons.net.ftp.parser.RegexFTPFileEntryParserImpl

      `getGroupCnt, getGroupsAsString, group, matches, setRegex, setRegex`

    - ### Methods inherited from class org.apache.commons.net.ftp.FTPFileEntryParserImpl

      `preParse, readNextEntry`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.net.ftp.FTPFileEntryParser

      `parseFTPEntry`

- - ### Constructor Detail

    - #### ConfigurableFTPFileEntryParserImpl

          public ConfigurableFTPFileEntryParserImpl(String regex)

      constructor for this abstract class.
      Parameters:
        `regex` - Regular expression used main parsing of the file listing.

    - #### ConfigurableFTPFileEntryParserImpl

          public ConfigurableFTPFileEntryParserImpl(String regex,
                                                    int flags)

      constructor for this abstract class.
      Parameters:
        `regex` - Regular expression used main parsing of the file listing.
        `flags` - the flags to apply, see `Pattern#compile(String, int)`. Use 0 for none.

  - ### Method Detail

    - #### configure

          public void configure(FTPClientConfig config)

      Implements the `Configurable` interface. Configures this parser by delegating to the underlying Configurable FTPTimestampParser implementation, ' passing it the supplied `FTPClientConfig` if that is non-null or a default configuration defined by each concrete subclass.
      Specified by:
        `configure` in interface `Configurable`
      Parameters:
        `config` - the configuration to be used to configure this parser. If it is null, a default configuration defined by each concrete subclass is used instead.

    - #### getDefaultConfiguration

          protected abstract FTPClientConfig getDefaultConfiguration()

      Each concrete subclass must define this member to create a default configuration to be used when that subclass is instantiated without a `FTPClientConfig` parameter being specified.
      Returns:
        the default configuration for the subclass.

    - #### parseTimestamp

          public Calendar parseTimestamp(String timestampStr)
                                  throws ParseException

      This method is called by the concrete parsers to delegate timestamp parsing to the timestamp parser.
      Parameters:
        `timestampStr` - the timestamp string pulled from the file listing by the regular expression parser, to be submitted to the `timestampParser` for extracting the timestamp.
      Returns:
        a `java.util.Calendar` containing results of the timestamp parse.
      Throws:
        `ParseException` - on parse error