VMSFTPEntryParser
Date: 2016-06-23

org.apache.commons.net.ftp.parser

## Class VMSFTPEntryParser

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

- All Implemented Interfaces:
    Configurable, FTPFileEntryParser
  Direct Known Subclasses:
    VMSVersioningFTPEntryParser

      public class VMSFTPEntryParser
      extends ConfigurableFTPFileEntryParserImpl

  Implementation FTPFileEntryParser and FTPFileListParser for VMS Systems. This is a sample of VMS LIST output "1-JUN.LIS;1 9/9 2-JUN-1998 07:32:04 [GROUP,OWNER] (RWED,RWED,RWED,RE)", "1-JUN.LIS;2 9/9 2-JUN-1998 07:32:04 [GROUP,OWNER] (RWED,RWED,RWED,RE)", "DATA.DIR;1 1/9 2-JUN-1998 07:32:04 [GROUP,OWNER] (RWED,RWED,RWED,RE)",

  Note: VMSFTPEntryParser can only be instantiated through the DefaultFTPParserFactory by classname. It will not be chosen by the autodetection scheme.

  See Also:
    `FTPFileEntryParser (for usage instructions)`, `DefaultFTPFileEntryParserFactory`

- - ### Field Summary

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

      `_matcher_`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VMSFTPEntryParser()` Constructor for a VMSFTPEntryParser object.
    `VMSFTPEntryParser(FTPClientConfig config)` This constructor allows the creation of a VMSFTPEntryParser object with something other than the default configuration.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected FTPClientConfig` | `getDefaultConfiguration()` Defines a default configuration to be used when this class is instantiated without a `FTPClientConfig` parameter being specified.
    `protected boolean` | `isVersioning()`
    `FTPFile[]` | `parseFileList(java.io.InputStream listStream)` Deprecated. (2.2) No other FTPFileEntryParser implementations have this method.
    `FTPFile` | `parseFTPEntry(java.lang.String entry)` Parses a line of a VMS FTP server file listing and converts it into a usable format in the form of an `FTPFile` instance.
    `java.lang.String` | `readNextEntry(java.io.BufferedReader reader)` Reads the next entry using the supplied BufferedReader object up to whatever delemits one entry from the next.

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

      `configure, parseTimestamp`

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

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

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

- - ### Constructor Detail

    - #### VMSFTPEntryParser

          public VMSFTPEntryParser()

      Constructor for a VMSFTPEntryParser object.
      Throws:
        `java.lang.IllegalArgumentException` - Thrown if the regular expression is unparseable. Should not be seen under normal conditions. It it is seen, this is a sign that `REGEX` is not a valid regular expression.

    - #### VMSFTPEntryParser

          public VMSFTPEntryParser(FTPClientConfig config)

      This constructor allows the creation of a VMSFTPEntryParser object with something other than the default configuration.
      Parameters:
        `config` - The `configuration` object used to configure this parser.
      Throws:
        `java.lang.IllegalArgumentException` - Thrown if the regular expression is unparseable. Should not be seen under normal conditions. It it is seen, this is a sign that `REGEX` is not a valid regular expression.
      Since:
        1.4

  - ### Method Detail

    - #### parseFTPEntry

          public FTPFile parseFTPEntry(java.lang.String entry)

      Parses a line of a VMS FTP server file listing and converts it into a usable format in the form of an `FTPFile` instance. If the file listing line doesn't describe a file, `null` is returned, otherwise a `FTPFile` instance representing the files in the directory is returned.
      Parameters:
        `entry` - A line of text from the file listing
      Returns:
        An FTPFile instance corresponding to the supplied entry

    - #### readNextEntry

          public java.lang.String readNextEntry(java.io.BufferedReader reader)
                                         throws java.io.IOException

      Reads the next entry using the supplied BufferedReader object up to whatever delemits one entry from the next. This parser cannot use the default implementation of simply calling BufferedReader.readLine(), because one entry may span multiple lines.
      Specified by:
        `readNextEntry` in interface `FTPFileEntryParser`
      Overrides:
        `readNextEntry` in class `FTPFileEntryParserImpl`
      Parameters:
        `reader` - The BufferedReader object from which entries are to be read.
      Returns:
        A string representing the next ftp entry or null if none found.
      Throws:
        `java.io.IOException` - thrown on any IO Error reading from the reader.

    - #### isVersioning

          protected boolean isVersioning()

    - #### getDefaultConfiguration

          protected FTPClientConfig getDefaultConfiguration()

      Defines a default configuration to be used when this class is instantiated without a `FTPClientConfig` parameter being specified.
      Specified by:
        `getDefaultConfiguration` in class `ConfigurableFTPFileEntryParserImpl`
      Returns:
        the default configuration for this parser.

    - #### parseFileList

          @Deprecated
          public FTPFile[] parseFileList(java.io.InputStream listStream)
                                  throws java.io.IOException

      Deprecated. (2.2) No other FTPFileEntryParser implementations have this method.
      DO NOT USE
      Parameters:
        `listStream` - the stream
      Returns:
        the array of files
      Throws:
        `java.io.IOException` - on error