- /*
- * Copyright 2001-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.commons.net.ftp;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Iterator;
- import java.util.List;
-
- /**
- * 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.
- *
- * @author Steve Cohen <scohen@apache.org>
- */
- public abstract class FTPFileEntryParserImpl
- implements FTPFileEntryParser, FTPFileListParser
- {
- /**
- * The constructor for a FTPFileEntryParserImpl object.
- */
- public FTPFileEntryParserImpl()
- {
- }
-
-
- /***
- * Parses an FTP server file listing and converts it into a usable format
- * in the form of an array of <code> FTPFile </code> instances. If the
- * file list contains no files, <code> null </code> should be
- * returned, otherwise an array of <code> FTPFile </code> instances
- * representing the files in the directory is returned.
- * <p>
- * @param listStream The InputStream from which the file list should be
- * read.
- * @return The list of file information contained in the given path. null
- * if the list could not be obtained or if there are no files in
- * the directory.
- * @exception java.io.IOException If an I/O error occurs reading the listStream.
- ***/
- public FTPFile[] parseFileList(InputStream listStream) throws IOException
- {
- FTPFileList ffl = FTPFileList.create(listStream, this);
- return ffl.getFiles();
-
- }
-
- /**
- * Reads the next entry using the supplied BufferedReader object up to
- * whatever delemits one entry from the next. This default implementation
- * simply calls BufferedReader.readLine().
- *
- * @param reader The BufferedReader object from which entries are to be
- * read.
- *
- * @return A string representing the next ftp entry or null if none found.
- * @exception java.io.IOException thrown on any IO Error reading from the reader.
- */
- public String readNextEntry(BufferedReader reader) throws IOException
- {
- return reader.readLine();
- }
- /**
- * This method is a hook for those implementors (such as
- * VMSVersioningFTPEntryParser, and possibly others) which need to
- * perform some action upon the FTPFileList after it has been created
- * from the server stream, but before any clients see the list.
- *
- * This default implementation is a no-op.
- *
- * @param original Original list after it has been created from the server stream
- *
- * @return <code>original</code> unmodified.
- */
- public List preParse(List original) {
- Iterator it = original.iterator();
- while (it.hasNext()){
- String entry = (String) it.next();
- if (null == parseFTPEntry(entry)) {
- it.remove();
- } else {
- break;
- }
- }
- return original;
- }
- }
-
- /* Emacs configuration
- * Local variables: **
- * mode: java **
- * c-basic-offset: 4 **
- * indent-tabs-mode: nil **
- * End: **
- */