org.apache.commons.net.ftp.parser

## Class RegexFTPFileEntryParserImpl

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

- All Implemented Interfaces:
    FTPFileEntryParser
  Direct Known Subclasses:
    ConfigurableFTPFileEntryParserImpl, EnterpriseUnixFTPEntryParser

      public abstract class RegexFTPFileEntryParserImpl
      extends FTPFileEntryParserImpl

  This abstract class implements both the older FTPFileListParser and newer FTPFileEntryParser interfaces with default functionality. All the classes in the parser subpackage inherit from this. This is the base class for all regular expression based FTPFileEntryParser classes

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Matcher` | `_matcher_` Internal PatternMatcher object used by the parser.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RegexFTPFileEntryParserImpl(String regex)` The constructor for a RegexFTPFileEntryParserImpl object.
    `RegexFTPFileEntryParserImpl(String regex, int flags)` The constructor for a RegexFTPFileEntryParserImpl object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getGroupCnt()` Convenience method
    `String` | `getGroupsAsString()` For debugging purposes - returns a string shows each match group by number.
    `String` | `group(int matchnum)` Convenience method delegates to the internal MatchResult's group() method.
    `boolean` | `matches(String s)` Convenience method delegates to the internal MatchResult's matches() method.
    `boolean` | `setRegex(String regex)` Alter the current regular expression being utilised for entry parsing and create a new `Pattern` instance.
    `boolean` | `setRegex(String regex, int flags)` Alter the current regular expression being utilised for entry parsing and create a new `Pattern` instance.

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

- - ### Field Detail

    - #### _matcher_

          protected Matcher _matcher_

      Internal PatternMatcher object used by the parser. It has protected scope in case subclasses want to make use of it for their own purposes.

  - ### Constructor Detail

    - #### RegexFTPFileEntryParserImpl

          public RegexFTPFileEntryParserImpl(String regex)

      The constructor for a RegexFTPFileEntryParserImpl object. The expression is compiled with flags = 0.
      Parameters:
        `regex` - The regular expression with which this object is initialized.
      Throws:
        `IllegalArgumentException` - Thrown if the regular expression is unparseable. Should not be seen in normal conditions. It it is seen, this is a sign that a subclass has been created with a bad regular expression. Since the parser must be created before use, this means that any bad parser subclasses created from this will bomb very quickly, leading to easy detection.

    - #### RegexFTPFileEntryParserImpl

          public RegexFTPFileEntryParserImpl(String regex,
                                     int flags)

      The constructor for a RegexFTPFileEntryParserImpl object.
      Parameters:
        `regex` - The regular expression with which this object is initialized.
        `flags` - the flags to apply, see `Pattern.compile(String, int)`. Use 0 for none.
      Throws:
        `IllegalArgumentException` - Thrown if the regular expression is unparseable. Should not be seen in normal conditions. It it is seen, this is a sign that a subclass has been created with a bad regular expression. Since the parser must be created before use, this means that any bad parser subclasses created from this will bomb very quickly, leading to easy detection.
      Since:
        3.4

  - ### Method Detail

    - #### matches

          public boolean matches(String s)

      Convenience method delegates to the internal MatchResult's matches() method.
      Parameters:
        `s` - the String to be matched
      Returns:
        true if s matches this object's regular expression.

    - #### getGroupCnt

          public int getGroupCnt()

      Convenience method
      Returns:
        the number of groups() in the internal MatchResult.

    - #### group

          public String group(int matchnum)

      Convenience method delegates to the internal MatchResult's group() method.
      Parameters:
        `matchnum` - match group number to be retrieved
      Returns:
        the content of the `matchnum'th` group of the internal match or null if this method is called without a match having been made.

    - #### getGroupsAsString

          public String getGroupsAsString()

      For debugging purposes - returns a string shows each match group by number.
      Returns:
        a string shows each match group by number.

    - #### setRegex

          public boolean setRegex(String regex)

      Alter the current regular expression being utilised for entry parsing and create a new `Pattern` instance.
      Parameters:
        `regex` - The new regular expression
      Returns:
        true
      Throws:
        `IllegalArgumentException` - if the regex cannot be compiled
      Since:
        2.0

    - #### setRegex

          public boolean setRegex(String regex,
                         int flags)

      Alter the current regular expression being utilised for entry parsing and create a new `Pattern` instance.
      Parameters:
        `regex` - The new regular expression
        `flags` - the flags to apply, see `Pattern.compile(String, int)`. Use 0 for none.
      Returns:
        true
      Throws:
        `IllegalArgumentException` - if the regex cannot be compiled
      Since:
        3.4

Copyright © 2001–2017 The Apache Software Foundation. All rights reserved.