Package 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.

Since:
  1.4

- ## Field Summary

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

  `_matcher_`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### 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.
    Since:
      3.4

- ## Method Details

  - ### 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