diff options
Diffstat (limited to 'org/apache/commons/net/ftp/parser')
34 files changed, 0 insertions, 3131 deletions
| diff --git a/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.class b/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.classBinary files differ deleted file mode 100644 index 0beda53..0000000 --- a/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java b/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java deleted file mode 100644 index 4977b3f..0000000 --- a/org/apache/commons/net/ftp/parser/CompositeFileEntryParser.java +++ /dev/null @@ -1,72 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import org.apache.commons.net.ftp.FTPFile;
 -import org.apache.commons.net.ftp.FTPFileEntryParser;
 -import org.apache.commons.net.ftp.FTPFileEntryParserImpl;
 -
 -/**
 - * This implementation allows to pack some FileEntryParsers together
 - * and handle the case where to returned dirstyle isnt clearly defined.
 - * The matching parser will be cached.
 - * If the cached parser wont match due to the server changed the dirstyle,
 - * a new matching parser will be searched.
 - *
 - * @author Mario Ivankovits <mario@ops.co.at>
 - */
 -public class CompositeFileEntryParser extends FTPFileEntryParserImpl
 -{
 -    private final FTPFileEntryParser[] ftpFileEntryParsers;
 -    private FTPFileEntryParser cachedFtpFileEntryParser;
 -
 -    public CompositeFileEntryParser(FTPFileEntryParser[] ftpFileEntryParsers)
 -    {
 -        super();
 -
 -        this.cachedFtpFileEntryParser = null;
 -        this.ftpFileEntryParsers = ftpFileEntryParsers;
 -    }
 -
 -    public FTPFile parseFTPEntry(String listEntry)
 -    {
 -        if (cachedFtpFileEntryParser != null)
 -        {
 -            FTPFile matched = cachedFtpFileEntryParser.parseFTPEntry(listEntry);
 -            if (matched != null)
 -            {
 -                return matched;
 -            }
 -        }
 -        else
 -        {
 -            for (int iterParser=0; iterParser < ftpFileEntryParsers.length; iterParser++)
 -            {
 -                FTPFileEntryParser ftpFileEntryParser = ftpFileEntryParsers[iterParser];
 -
 -                FTPFile matched = ftpFileEntryParser.parseFTPEntry(listEntry);
 -                if (matched != null)
 -                {
 -                    cachedFtpFileEntryParser = ftpFileEntryParser;
 -                    return matched;
 -                }
 -            }
 -        }
 -        return null;
 -    }
 -}
 diff --git a/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.class b/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.classBinary files differ deleted file mode 100644 index 5cbb5d5..0000000 --- a/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java b/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java deleted file mode 100644 index a3e832f..0000000 --- a/org/apache/commons/net/ftp/parser/ConfigurableFTPFileEntryParserImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.ParseException;
 -import java.util.Calendar;
 -
 -import org.apache.commons.net.ftp.Configurable;
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -
 -
 -/**
 - * <p>
 - * 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 {@link FTPTimestampParser delegate} to
 - * handle parsing of the file timestamp.
 - * </p><p>
 - * This class also implements the {@link Configurable Configurable}
 - * interface to allow the parser to be configured from the outside.
 - * </p>
 - * @since 1.4
 - */
 -/**
 - * To change the template for this generated type comment go to
 - * Window - Preferences - Java - Code Style - Code Templates - Comments
 - */
 -public abstract class ConfigurableFTPFileEntryParserImpl 
 -extends RegexFTPFileEntryParserImpl 
 -implements Configurable 
 -{
 -
 -    private FTPTimestampParser timestampParser;
 -    
 -    /**
 -     * Only constructor for this absract class.
 -     * @param regex  Regular expression used main parsing of the 
 -     * file listing.
 -     */
 -    public ConfigurableFTPFileEntryParserImpl(String regex)
 -    {
 -        super(regex);
 -        this.timestampParser = new FTPTimestampParserImpl();
 -    }
 -
 -    /**
 -     * This method is called by the concrete parsers to delegate
 -     * timestamp parsing to the timestamp parser.
 -     * <p>
 -     * @param timestampStr the timestamp string pulled from the 
 -     * file listing by the regular expression parser, to be submitted
 -     * to the <code>timestampParser</code> for extracting the timestamp.
 -     * @return a <code>java.util.Calendar</code> containing results of the 
 -     * timestamp parse. 
 -     */
 -    public Calendar parseTimestamp(String timestampStr) throws ParseException {
 -        return this.timestampParser.parseTimestamp(timestampStr);
 -    }
 -
 -
 -    /**
 -     * Implementation of the {@link  Configurable  Configurable}
 -     * interface. Configures this parser by delegating to the
 -     * underlying Configurable FTPTimestampParser implementation, '
 -     * passing it the supplied {@link  FTPClientConfig FTPClientConfig}
 -     * if that is non-null or a default configuration defined by
 -     * each concrete subclass.
 -     * </p> 
 -     * @param 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.
 -     */
 -    public void configure(FTPClientConfig config)
 -    {
 -        if (this.timestampParser instanceof Configurable) {
 -            FTPClientConfig defaultCfg = getDefaultConfiguration();
 -            if (config != null) {
 -                if (null == config.getDefaultDateFormatStr()) {
 -                    config.setDefaultDateFormatStr(defaultCfg.getDefaultDateFormatStr());
 -                }
 -                if (null == config.getRecentDateFormatStr()) {
 -                    config.setRecentDateFormatStr(defaultCfg.getRecentDateFormatStr());
 -                }
 -                ((Configurable)this.timestampParser).configure(config);
 -            } else {
 -                ((Configurable)this.timestampParser).configure(defaultCfg);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Each concrete subclass must define this member to create
 -     * a default configuration to be used when that subclass is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for the subclass.
 -     */
 -    protected abstract FTPClientConfig getDefaultConfiguration();
 -}
 diff --git a/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class b/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.classBinary files differ deleted file mode 100644 index a4da6ed..0000000 --- a/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java b/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java deleted file mode 100644 index c071a8e..0000000 --- a/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.java +++ /dev/null @@ -1,247 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import org.apache.commons.net.ftp.Configurable;
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFileEntryParser;
 -
 -
 -/**
 - * This is the default implementation of the
 - * FTPFileEntryParserFactory interface.  This is the
 - * implementation that will be used by
 - * org.apache.commons.net.ftp.FTPClient.listFiles()
 - * if no other implementation has been specified.
 - *
 - * @see org.apache.commons.net.ftp.FTPClient#listFiles
 - * @see org.apache.commons.net.ftp.FTPClient#setParserFactory
 - */
 -public class DefaultFTPFileEntryParserFactory
 -    implements FTPFileEntryParserFactory
 -{
 -	private FTPClientConfig config = null;
 -
 -	/**
 -     * This default implementation of the FTPFileEntryParserFactory
 -     * interface works according to the following logic:
 -     * First it attempts to interpret the supplied key as a fully
 -     * qualified classname of a class implementing the
 -     * FTPFileEntryParser interface.  If that succeeds, a parser
 -     * object of this class is instantiated and is returned; 
 -     * otherwise it attempts to interpret the key as an identirier
 -     * commonly used by the FTP SYST command to identify systems.
 -     * <p/>
 -     * If <code>key</code> is not recognized as a fully qualified
 -     * classname known to the system, this method will then attempt
 -     * to see whether it <b>contains</b> a string identifying one of
 -     * the known parsers.  This comparison is <b>case-insensitive</b>.
 -     * The intent here is where possible, to select as keys strings
 -     * which are returned by the SYST command on the systems which
 -     * the corresponding parser successfully parses.  This enables
 -     * this factory to be used in the auto-detection system.
 -     * <p/>
 -     *
 -     * @param key    should be a fully qualified classname corresponding to
 -     *               a class implementing the FTPFileEntryParser interface<br/>
 -     *               OR<br/>
 -     *               a string containing (case-insensitively) one of the
 -     *               following keywords:
 -     *               <ul>
 -     *               <li>{@link FTPClientConfig#SYST_UNIX UNIX}</li>
 -     *               <li>{@link FTPClientConfig#SYST_NT WINDOWS}</li>
 -     *               <li>{@link FTPClientConfig#SYST_OS2 OS/2}</li>
 -     *               <li>{@link FTPClientConfig#SYST_OS400 OS/400}</li>
 -     *               <li>{@link FTPClientConfig#SYST_VMS VMS}</li>
 -     *               <li>{@link FTPClientConfig#SYST_MVS MVS}</li>
 -     *               <li>{@link FTPClientConfig#SYST_NETWARE}</li>
 -     *               </ul>
 -     * @return the FTPFileEntryParser corresponding to the supplied key.
 -     * @throws ParserInitializationException thrown if for any reason the factory cannot resolve
 -     *                   the supplied key into an FTPFileEntryParser.
 -     * @see FTPFileEntryParser
 -     */
 -    public FTPFileEntryParser createFileEntryParser(String key)
 -    {
 -    	if (key == null)
 -    		throw new ParserInitializationException("Parser key cannot be null");
 -    		
 -        Class<?> parserClass = null;
 -        FTPFileEntryParser parser = null;
 -        try
 -        {
 -            parserClass = Class.forName(key);
 -            parser = (FTPFileEntryParser) parserClass.newInstance();
 -        }
 -        catch (ClassNotFoundException e)
 -        {
 -            try 
 -            {
 -	            String ukey = null;
 -	            if (null != key)
 -	            {
 -	                ukey = key.toUpperCase(java.util.Locale.ENGLISH);
 -	            }
 -	            if ((ukey.indexOf(FTPClientConfig.SYST_UNIX) >= 0) 
 -	            		|| (ukey.indexOf(FTPClientConfig.SYST_L8) >= 0))
 -	            {
 -	                parser = createUnixFTPEntryParser();
 -	            }
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_VMS) >= 0)
 -	            {
 -	                parser = createVMSVersioningFTPEntryParser();
 -	            }
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_NT) >= 0)
 -	            {
 -	                parser = createNTFTPEntryParser();
 -	            }
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_OS2) >= 0)
 -	            {
 -	                parser = createOS2FTPEntryParser();
 -	            }
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_OS400) >= 0 ||
 -	            		ukey.indexOf(FTPClientConfig.SYST_AS400) >= 0)
 -	            {
 -	                parser = createOS400FTPEntryParser();
 -	            }
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_MVS) >= 0)
 -	            {
 -	                parser = createMVSEntryParser();
 -	        	}
 -	            else if (ukey.indexOf(FTPClientConfig.SYST_NETWARE) >= 0) 
 -	            {
 -	            	parser = createNetwareFTPEntryParser();
 -	            }
 -	            else
 -	            {
 -	                throw new ParserInitializationException("Unknown parser type: " + key);
 -	            }
 -            } 
 -            catch (NoClassDefFoundError nf) {
 -                    throw new ParserInitializationException("Error initializing parser", nf);
 -            }
 -
 -        }
 -        catch (NoClassDefFoundError e)
 -        { 	
 -            throw new ParserInitializationException("Error initializing parser", e);
 -        }
 -        catch (ClassCastException e)
 -        {
 -            throw new ParserInitializationException(parserClass.getName()
 -                + " does not implement the interface "
 -                + "org.apache.commons.net.ftp.FTPFileEntryParser.", e);
 -        }
 -        catch (Throwable e)
 -        {
 -            throw new ParserInitializationException("Error initializing parser", e);
 -        }
 -
 -        if (parser instanceof Configurable) {
 -            ((Configurable)parser).configure(this.config);
 -        }    
 -        return parser;
 -    }
 -    
 -    /**
 -     * <p>Implementation extracts a key from the supplied 
 -     * {@link  FTPClientConfig FTPClientConfig}
 -     * parameter and creates an object implementing the
 -     * interface FTPFileEntryParser and uses the supplied configuration
 -     * to configure it.
 -     * </p><p>
 -     * Note that this method will generally not be called in scenarios
 -     * that call for autodetection of parser type but rather, for situations
 -     * where the user knows that the server uses a non-default configuration
 -     * and knows what that configuration is.
 -     * </p>
 -     * @param config  A {@link  FTPClientConfig FTPClientConfig}  
 -     * used to configure the parser created
 -     *
 -     * @return the @link  FTPFileEntryParser FTPFileEntryParser} so created.
 -     * @exception ParserInitializationException
 -     *                   Thrown on any exception in instantiation
 -     * @since 1.4
 -     */
 -	public FTPFileEntryParser createFileEntryParser(FTPClientConfig config) 
 -	throws ParserInitializationException 
 -	{
 -	    this.config = config;
 -		String key = config.getServerSystemKey();
 -		return createFileEntryParser(key);
 -	}
 -
 -
 -    public FTPFileEntryParser createUnixFTPEntryParser()
 -    {
 -        return new UnixFTPEntryParser();
 -    }
 -
 -    public FTPFileEntryParser createVMSVersioningFTPEntryParser()
 -    {
 -        return new VMSVersioningFTPEntryParser();
 -    }
 -    
 -    public FTPFileEntryParser createNetwareFTPEntryParser() {
 -    	return new NetwareFTPEntryParser();
 -    }
 -
 -    public FTPFileEntryParser createNTFTPEntryParser()
 -    {
 -    	if (config != null && FTPClientConfig.SYST_NT.equals(
 -    	        config.getServerSystemKey())) 
 -    	{
 -            return new NTFTPEntryParser();
 -    	} else {
 -            return new CompositeFileEntryParser(new FTPFileEntryParser[]
 -	   	        {
 -	   	            new NTFTPEntryParser(),
 -	   	            new UnixFTPEntryParser()
 -	   	        });
 -    	}
 -    }
 -    
 -     public FTPFileEntryParser createOS2FTPEntryParser()
 -    {
 -        return new OS2FTPEntryParser();
 -    }
 -
 -    public FTPFileEntryParser createOS400FTPEntryParser()
 -    {
 -    	if (config != null && 
 -    	        FTPClientConfig.SYST_OS400.equals(config.getServerSystemKey())) 
 -    	{
 -            return new OS400FTPEntryParser();
 -    	} else {
 -	        return new CompositeFileEntryParser(new FTPFileEntryParser[]
 -	            {
 -	                new OS400FTPEntryParser(),
 -	                new UnixFTPEntryParser()
 -	            });
 -    	}
 -    }
 -
 -    public FTPFileEntryParser createMVSEntryParser()
 -    {
 -        return new MVSFTPEntryParser();
 -    }
 -
 -
 -	
 -}
 -
 diff --git a/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java b/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java deleted file mode 100644 index c7e6da7..0000000 --- a/org/apache/commons/net/ftp/parser/EnterpriseUnixFTPEntryParser.java +++ /dev/null @@ -1,166 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import java.util.Calendar;
 -
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Parser for the Connect Enterprise Unix FTP Server From Sterling Commerce.
 - * Here is a sample of the sort of output line this parser processes:
 - *  "-C--E-----FTP B QUA1I1      18128       41 Aug 12 13:56 QUADTEST"
 - * <P><B>
 - * Note: EnterpriseUnixFTPEntryParser can only be instantiated through the
 - * DefaultFTPParserFactory by classname.  It will not be chosen
 - * by the autodetection scheme.
 - * </B>
 - * @version $Id: EnterpriseUnixFTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - * @author <a href="Winston.Ojeda@qg.com">Winston Ojeda</a>
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - * @see org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory
 - */
 -public class EnterpriseUnixFTPEntryParser extends RegexFTPFileEntryParserImpl
 -{
 -
 -    /**
 -     * months abbreviations looked for by this parser.  Also used
 -     * to determine <b>which</b> month has been matched by the parser.
 -     */
 -    private static final String MONTHS =
 -        "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)";
 -
 -    /**
 -     * this is the regular expression used by this parser.
 -     */
 -    private static final String REGEX =
 -        "(([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])"
 -        + "([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z])([\\-]|[A-Z]))"
 -        + "(\\S*)\\s*"
 -        + "(\\S+)\\s*"
 -        + "(\\S*)\\s*"
 -        + "(\\d*)\\s*"
 -        + "(\\d*)\\s*"
 -        + MONTHS
 -        + "\\s*"
 -        + "((?:[012]\\d*)|(?:3[01]))\\s*"
 -        + "((\\d\\d\\d\\d)|((?:[01]\\d)|(?:2[0123])):([012345]\\d))\\s"
 -        + "(\\S*)(\\s*.*)";
 -
 -    /**
 -     * The sole constructor for a EnterpriseUnixFTPEntryParser object.
 -     *
 -     */
 -    public EnterpriseUnixFTPEntryParser()
 -    {
 -        super(REGEX);
 -    }
 -
 -    /**
 -     * Parses a line of a unix FTP server file listing and converts  it into a
 -     * usable format in the form of an <code> FTPFile </code>  instance.  If
 -     * the file listing line doesn't describe a file,  <code> null </code> is
 -     * returned, otherwise a <code> FTPFile </code>  instance representing the
 -     * files in the directory is returned.
 -     *
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry)
 -    {
 -
 -        FTPFile file = new FTPFile();
 -        file.setRawListing(entry);
 -
 -        if (matches(entry))
 -        {
 -            String usr = group(14);
 -            String grp = group(15);
 -            String filesize = group(16);
 -            String mo = group(17);
 -            String da = group(18);
 -            String yr = group(20);
 -            String hr = group(21);
 -            String min = group(22);
 -            String name = group(23);
 -
 -            file.setType(FTPFile.FILE_TYPE);
 -            file.setUser(usr);
 -            file.setGroup(grp);
 -            try
 -            {
 -                file.setSize(Long.parseLong(filesize));
 -            }
 -            catch (NumberFormatException e)
 -            {
 -                // intentionally do nothing
 -            }
 -
 -            Calendar cal = Calendar.getInstance();
 -        cal.set(Calendar.MILLISECOND, 0);
 -            cal.set(Calendar.SECOND,
 -                    0);
 -            cal.set(Calendar.MINUTE,
 -                    0);
 -            cal.set(Calendar.HOUR_OF_DAY,
 -                    0);
 -            try
 -            {
 -
 -                int pos = MONTHS.indexOf(mo);
 -                int month = pos / 4;
 -                if (yr != null)
 -                {
 -                    // it's a year
 -                    cal.set(Calendar.YEAR,
 -                            Integer.parseInt(yr));
 -                }
 -                else
 -                {
 -                    // it must be  hour/minute or we wouldn't have matched
 -                    int year = cal.get(Calendar.YEAR);
 -
 -                    // if the month we're reading is greater than now, it must
 -                    // be last year
 -                    if (cal.get(Calendar.MONTH) < month)
 -                    {
 -                        year--;
 -                    }
 -                    cal.set(Calendar.YEAR,
 -                            year);
 -                    cal.set(Calendar.HOUR_OF_DAY,
 -                            Integer.parseInt(hr));
 -                    cal.set(Calendar.MINUTE,
 -                            Integer.parseInt(min));
 -                }
 -                cal.set(Calendar.MONTH,
 -                        month);
 -                cal.set(Calendar.DATE,
 -                        Integer.parseInt(da));
 -                file.setTimestamp(cal);
 -            }
 -            catch (NumberFormatException e)
 -            {
 -                // do nothing, date will be uninitialized
 -            }
 -            file.setName(name);
 -
 -            return file;
 -        }
 -        return null;
 -    }
 -}
 diff --git a/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.class b/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.classBinary files differ deleted file mode 100644 index f1bdf1b..0000000 --- a/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java b/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java deleted file mode 100644 index e80ec0d..0000000 --- a/org/apache/commons/net/ftp/parser/FTPFileEntryParserFactory.java +++ /dev/null @@ -1,68 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFileEntryParser;
 -
 -/**
 - * The interface describes a factory for creating FTPFileEntryParsers.
 - * @since 1.2
 - */
 -public interface FTPFileEntryParserFactory
 -{
 -    /**
 -     * Implementation should be a method that decodes the
 -     * supplied key and creates an object implementing the
 -     * interface FTPFileEntryParser.
 -     *
 -     * @param key    A string that somehow identifies an
 -     *               FTPFileEntryParser to be created.
 -     *
 -     * @return the FTPFileEntryParser created.
 -     * @exception ParserInitializationException
 -     *                   Thrown on any exception in instantiation
 -     */
 -    public FTPFileEntryParser createFileEntryParser(String key)
 -        throws ParserInitializationException;
 -    
 -    /**
 -     *<p>
 -     * Implementation should be a method that extracts
 -     * a key from the supplied {@link  FTPClientConfig FTPClientConfig}
 -     * parameter and creates an object implementing the
 -     * interface FTPFileEntryParser and uses the supplied configuration
 -     * to configure it.
 -     * </p><p>
 -     * Note that this method will generally not be called in scenarios
 -     * that call for autodetection of parser type but rather, for situations
 -     * where the user knows that the server uses a non-default configuration
 -     * and knows what that configuration is.
 -     * </p>
 -     *
 -     * @param config  A {@link  FTPClientConfig FTPClientConfig}  
 -     * used to configure the parser created
 -     *
 -     * @return the @link  FTPFileEntryParser FTPFileEntryParser} so created.
 -     * @exception ParserInitializationException
 -     *                   Thrown on any exception in instantiation
 -     * @since 1.4
 -     */
 -    public FTPFileEntryParser createFileEntryParser(FTPClientConfig config)
 -        throws ParserInitializationException;
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/FTPTimestampParser.class b/org/apache/commons/net/ftp/parser/FTPTimestampParser.classBinary files differ deleted file mode 100644 index 32230d8..0000000 --- a/org/apache/commons/net/ftp/parser/FTPTimestampParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/FTPTimestampParser.java b/org/apache/commons/net/ftp/parser/FTPTimestampParser.java deleted file mode 100644 index 40b46cb..0000000 --- a/org/apache/commons/net/ftp/parser/FTPTimestampParser.java +++ /dev/null @@ -1,52 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.ParseException;
 -import java.util.Calendar;
 -
 -/**
 - * This interface specifies the concept of parsing an FTP server's 
 - * timestamp.
 - * @since 1.4
 - */
 -public interface FTPTimestampParser {
 -    
 -    /**
 -     * the default default date format. 
 -     */
 -    public static final String DEFAULT_SDF = UnixFTPEntryParser.DEFAULT_DATE_FORMAT;
 -    /**
 -     * the default recent date format. 
 -     */
 -    public static final String DEFAULT_RECENT_SDF = UnixFTPEntryParser.DEFAULT_RECENT_DATE_FORMAT;
 -    
 -    /**
 -     * Parses the supplied datestamp parameter.  This parameter typically would 
 -     * have been pulled from a longer FTP listing via the regular expression 
 -     * mechanism
 -     * @param timestampStr - the timestamp portion of the FTP directory listing
 -     * to be parsed
 -     * @return a <code>java.util.Calendar</code> object initialized to the date
 -     * parsed by the parser
 -     * @throws ParseException if none of the parser mechanisms belonging to 
 -     * the implementor can parse the input.
 -     */
 -    public Calendar parseTimestamp(String timestampStr) throws ParseException;
 -    
 -}
 diff --git a/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.class b/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.classBinary files differ deleted file mode 100644 index 0ae3067..0000000 --- a/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java b/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java deleted file mode 100644 index 02a0cc8..0000000 --- a/org/apache/commons/net/ftp/parser/FTPTimestampParserImpl.java +++ /dev/null @@ -1,301 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.DateFormatSymbols;
 -import java.text.ParseException;
 -import java.text.ParsePosition;
 -import java.text.SimpleDateFormat;
 -import java.util.Calendar;
 -import java.util.Date;
 -import java.util.TimeZone;
 -
 -import org.apache.commons.net.ftp.Configurable;
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -
 -/**
 - * Default implementation of the {@link  FTPTimestampParser  FTPTimestampParser} 
 - * interface also implements the {@link  org.apache.commons.net.ftp.Configurable  Configurable}
 - * interface to allow the parsing to be configured from the outside.
 - *
 - * @see ConfigurableFTPFileEntryParserImpl
 - * @since 1.4
 - */
 -public class FTPTimestampParserImpl implements
 -        FTPTimestampParser, Configurable 
 -{
 -
 -    
 -    private SimpleDateFormat defaultDateFormat;
 -    private SimpleDateFormat recentDateFormat;
 -    private boolean lenientFutureDates = false;
 -    
 -    
 -    /**
 -     * The only constructor for this class. 
 -     */
 -    public FTPTimestampParserImpl() {
 -        setDefaultDateFormat(DEFAULT_SDF);
 -        setRecentDateFormat(DEFAULT_RECENT_SDF);
 -    }
 -    
 -    /** 
 -     * Implements the one {@link  FTPTimestampParser#parseTimestamp(String)  method}
 -     * in the {@link  FTPTimestampParser  FTPTimestampParser} interface 
 -     * according to this algorithm:
 -     * 
 -     * If the recentDateFormat member has been defined, try to parse the 
 -     * supplied string with that.  If that parse fails, or if the recentDateFormat
 -     * member has not been defined, attempt to parse with the defaultDateFormat
 -     * member.  If that fails, throw a ParseException.
 -     * 
 -     * This method allows a {@link Calendar} instance to be passed in which represents the
 -     * current (system) time.
 -     * 
 -     * @see org.apache.commons.net.ftp.parser.FTPTimestampParser#parseTimestamp(java.lang.String)
 -     * 
 -     * @param timestampStr The timestamp to be parsed
 -     */
 -    public Calendar parseTimestamp(String timestampStr) throws ParseException {
 -        Calendar now = Calendar.getInstance();
 -        return parseTimestamp(timestampStr, now);
 -    }
 -    
 -    /** 
 -     * Implements the one {@link  FTPTimestampParser#parseTimestamp(String)  method}
 -     * in the {@link  FTPTimestampParser  FTPTimestampParser} interface 
 -     * according to this algorithm:
 -     * 
 -     * If the recentDateFormat member has been defined, try to parse the 
 -     * supplied string with that.  If that parse fails, or if the recentDateFormat
 -     * member has not been defined, attempt to parse with the defaultDateFormat
 -     * member.  If that fails, throw a ParseException. 
 -     * 
 -     * @see org.apache.commons.net.ftp.parser.FTPTimestampParser#parseTimestamp(java.lang.String)
 -     * @param timestampStr The timestamp to be parsed
 -     * @param serverTime The current time for the server
 -     * @since 1.5
 -     */
 -    public Calendar parseTimestamp(String timestampStr, Calendar serverTime) throws ParseException {
 -        Calendar now = (Calendar) serverTime.clone();// Copy this, because we may change it
 -        now.setTimeZone(this.getServerTimeZone());
 -        Calendar working = (Calendar) now.clone();
 -        working.setTimeZone(getServerTimeZone());
 -        ParsePosition pp = new ParsePosition(0);
 -
 -        Date parsed = null;
 -        if (recentDateFormat != null) {
 -            if (lenientFutureDates) {
 -                // add a day to "now" so that "slop" doesn't cause a date 
 -                // slightly in the future to roll back a full year.  (Bug 35181)
 -                now.add(Calendar.DATE, 1);
 -            }    
 -            parsed = recentDateFormat.parse(timestampStr, pp);
 -        }
 -        if (parsed != null && pp.getIndex() == timestampStr.length()) 
 -        {
 -            working.setTime(parsed);
 -            working.set(Calendar.YEAR, now.get(Calendar.YEAR));
 -
 -            if (working.after(now)) {
 -                working.add(Calendar.YEAR, -1);
 -            }
 -        } else {
 -            // Temporarily add the current year to the short date time
 -            // to cope with short-date leap year strings.
 -            // e.g. Java's DateFormatter will assume that "Feb 29 12:00" refers to 
 -            // Feb 29 1970 (an invalid date) rather than a potentially valid leap year date.
 -            // This is pretty bad hack to work around the deficiencies of the JDK date/time classes.
 -            if (recentDateFormat != null) {
 -                pp = new ParsePosition(0);
 -                int year = now.get(Calendar.YEAR);
 -                String timeStampStrPlusYear = timestampStr + " " + year;
 -                SimpleDateFormat hackFormatter = new SimpleDateFormat(recentDateFormat.toPattern() + " yyyy", 
 -                        recentDateFormat.getDateFormatSymbols());
 -                hackFormatter.setLenient(false);
 -                hackFormatter.setTimeZone(recentDateFormat.getTimeZone());
 -                parsed = hackFormatter.parse(timeStampStrPlusYear, pp);
 -            }
 -            if (parsed != null && pp.getIndex() == timestampStr.length() + 5) {
 -                working.setTime(parsed);
 -            }
 -            else {
 -                pp = new ParsePosition(0);
 -                parsed = defaultDateFormat.parse(timestampStr, pp);
 -                // note, length checks are mandatory for us since
 -                // SimpleDateFormat methods will succeed if less than
 -                // full string is matched.  They will also accept, 
 -                // despite "leniency" setting, a two-digit number as
 -                // a valid year (e.g. 22:04 will parse as 22 A.D.) 
 -                // so could mistakenly confuse an hour with a year, 
 -                // if we don't insist on full length parsing.
 -                if (parsed != null && pp.getIndex() == timestampStr.length()) {
 -                    working.setTime(parsed);
 -                } else {
 -                    throw new ParseException(
 -                            "Timestamp could not be parsed with older or recent DateFormat", 
 -                            pp.getIndex());
 -                }
 -            }
 -        }
 -        return working;
 -    }
 -
 -    /**
 -     * @return Returns the defaultDateFormat.
 -     */
 -    public SimpleDateFormat getDefaultDateFormat() {
 -        return defaultDateFormat;
 -    }
 -    /**
 -     * @return Returns the defaultDateFormat pattern string.
 -     */
 -    public String getDefaultDateFormatString() {
 -        return defaultDateFormat.toPattern();
 -    }
 -    /**
 -     * @param defaultDateFormat The defaultDateFormat to be set.
 -     */
 -    private void setDefaultDateFormat(String format) {
 -        if (format != null) {
 -            this.defaultDateFormat = new SimpleDateFormat(format);
 -            this.defaultDateFormat.setLenient(false);
 -        }
 -    } 
 -    /**
 -     * @return Returns the recentDateFormat.
 -     */
 -    public SimpleDateFormat getRecentDateFormat() {
 -        return recentDateFormat;
 -    }
 -    /**
 -     * @return Returns the recentDateFormat.
 -     */
 -    public String getRecentDateFormatString() {
 -        return recentDateFormat.toPattern();
 -    }
 -    /**
 -     * @param recentDateFormat The recentDateFormat to set.
 -     */
 -    private void setRecentDateFormat(String format) {
 -        if (format != null) {
 -            this.recentDateFormat = new SimpleDateFormat(format);
 -            this.recentDateFormat.setLenient(false);
 -        }
 -    }
 -    
 -    /**
 -     * @return returns an array of 12 strings representing the short
 -     * month names used by this parse.
 -     */
 -    public String[] getShortMonths() {
 -        return defaultDateFormat.getDateFormatSymbols().getShortMonths();
 -    }
 -    
 -    
 -    /**
 -     * @return Returns the serverTimeZone used by this parser.
 -     */
 -    public TimeZone getServerTimeZone() {
 -        return this.defaultDateFormat.getTimeZone();
 -    }
 -    /**
 -     * sets a TimeZone represented by the supplied ID string into all
 -     * of the parsers used by this server.
 -     * @param serverTimeZone Time Id java.util.TimeZone id used by
 -     * the ftp server.  If null the client's local time zone is assumed.
 -     */
 -    private void setServerTimeZone(String serverTimeZoneId) {
 -        TimeZone serverTimeZone = TimeZone.getDefault();
 -        if (serverTimeZoneId != null) {
 -            serverTimeZone = TimeZone.getTimeZone(serverTimeZoneId);
 -        }
 -        this.defaultDateFormat.setTimeZone(serverTimeZone);
 -        if (this.recentDateFormat != null) {
 -            this.recentDateFormat.setTimeZone(serverTimeZone);
 -        }
 -    }
 -    
 -    /**
 -     * Implementation of the {@link  Configurable  Configurable}
 -     * interface. Configures this <code>FTPTimestampParser</code> according
 -     * to the following logic:
 -     * <p>
 -     * Set up the {@link  FTPClientConfig#setDefaultDateFormatStr(java.lang.String) defaultDateFormat}
 -     * and optionally the {@link  FTPClientConfig#setRecentDateFormatStr(String) recentDateFormat}
 -     * to values supplied in the config based on month names configured as follows:
 -     * </p><p><ul>
 -     * <li>If a {@link  FTPClientConfig#setShortMonthNames(String) shortMonthString}
 -     * has been supplied in the <code>config</code>, use that to parse  parse timestamps.</li> 
 -     * <li>Otherwise, if a {@link  FTPClientConfig#setServerLanguageCode(String) serverLanguageCode}
 -     * has been supplied in the <code>config</code>, use the month names represented 
 -     * by that {@link  FTPClientConfig#lookupDateFormatSymbols(String) language}
 -     * to parse timestamps.</li>
 -     * <li>otherwise use default English month names</li>
 -     * </ul></p><p>
 -     * Finally if a {@link  org.apache.commons.net.ftp.FTPClientConfig#setServerTimeZoneId(String) serverTimeZoneId}
 -     * has been supplied via the config, set that into all date formats that have 
 -     * been configured.  
 -     * </p> 
 -     */
 -    public void configure(FTPClientConfig config) {
 -        DateFormatSymbols dfs = null;
 -        
 -        String languageCode = config.getServerLanguageCode();
 -        String shortmonths = config.getShortMonthNames();
 -        if (shortmonths != null) {
 -            dfs = FTPClientConfig.getDateFormatSymbols(shortmonths);
 -        } else if (languageCode != null) {
 -            dfs = FTPClientConfig.lookupDateFormatSymbols(languageCode);
 -        } else {
 -            dfs = FTPClientConfig.lookupDateFormatSymbols("en");
 -        }
 -        
 -        
 -        String recentFormatString = config.getRecentDateFormatStr();
 -        if (recentFormatString == null) {
 -            this.recentDateFormat = null;
 -        } else {
 -            this.recentDateFormat = new SimpleDateFormat(recentFormatString, dfs);
 -            this.recentDateFormat.setLenient(false);
 -        }
 -            
 -        String defaultFormatString = config.getDefaultDateFormatStr();
 -        if (defaultFormatString == null) {
 -            throw new IllegalArgumentException("defaultFormatString cannot be null");
 -        }
 -        this.defaultDateFormat = new SimpleDateFormat(defaultFormatString, dfs);
 -        this.defaultDateFormat.setLenient(false);
 -        
 -        setServerTimeZone(config.getServerTimeZoneId());
 -        
 -        this.lenientFutureDates = config.isLenientFutureDates();
 -    }
 -    /**
 -     * @return Returns the lenientFutureDates.
 -     */
 -    boolean isLenientFutureDates() {
 -        return lenientFutureDates;
 -    }
 -    /**
 -     * @param lenientFutureDates The lenientFutureDates to set.
 -     */
 -    void setLenientFutureDates(boolean lenientFutureDates) {
 -        this.lenientFutureDates = lenientFutureDates;
 -    }
 -}
 diff --git a/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.class b/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.classBinary files differ deleted file mode 100644 index 0dc97d0..0000000 --- a/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java b/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java deleted file mode 100644 index cd87e6e..0000000 --- a/org/apache/commons/net/ftp/parser/MVSFTPEntryParser.java +++ /dev/null @@ -1,495 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.ParseException;
 -import java.util.List;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Implementation of FTPFileEntryParser and FTPFileListParser for IBM zOS/MVS
 - * Systems.
 - * 
 - * @author <a href="henrik.sorensen@balcab.ch">Henrik Sorensen</a>
 - * @author <a href="jnadler@srcginc.com">Jeff Nadler</a>
 - * @author <a href="wnoto@openfinance.com">William Noto</a>
 - * 
 - * @version $Id: MVSFTPEntryParser.java 658520 2008-05-21 01:14:11Z sebb $
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for
 - *      usage instructions)
 - */
 -public class MVSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
 -
 -    static final int UNKNOWN_LIST_TYPE = -1;
 -    static final int FILE_LIST_TYPE = 0;
 -    static final int MEMBER_LIST_TYPE = 1;
 -    static final int UNIX_LIST_TYPE = 2;
 -    static final int JES_LEVEL_1_LIST_TYPE = 3;
 -    static final int JES_LEVEL_2_LIST_TYPE = 4;
 -
 -    private int isType = UNKNOWN_LIST_TYPE;
 -
 -    /**
 -     * Fallback parser for Unix-style listings
 -     */
 -    private UnixFTPEntryParser unixFTPEntryParser;
 -
 -    /**
 -     * Dates are ignored for file lists, but are used for member lists where
 -     * possible
 -     */
 -    static final String DEFAULT_DATE_FORMAT = "yyyy/MM/dd HH:mm"; // 2001/09/18
 -                                                                    // 13:52
 -
 -    /**
 -     * Matches these entries: Volume Unit Referred Ext Used Recfm Lrecl BlkSz
 -     * Dsorg Dsname B10142 3390 2006/03/20 2 31 F 80 80 PS MDI.OKL.WORK
 -     * 
 -     */
 -    static final String FILE_LIST_REGEX = "\\S+\\s+" + // volume
 -                                                                // ignored
 -            "\\S+\\s+" + // unit - ignored
 -            "\\S+\\s+" + // access date - ignored
 -            "\\S+\\s+" + // extents -ignored
 -            "\\S+\\s+" + // used - ignored
 -            "[FV]\\S*\\s+" + // recfm - must start with F or V
 -            "\\S+\\s+" + // logical record length -ignored
 -            "\\S+\\s+" + // block size - ignored
 -            "(PS|PO|PO-E)\\s+" + // Dataset organisation. Many exist
 -            // but only support: PS, PO, PO-E
 -            "(\\S+)\\s*"; // Dataset Name (file name)
 -
 -    /**
 -     * Matches these entries: Name VV.MM Created Changed Size Init Mod Id
 -     * TBSHELF 01.03 2002/09/12 2002/10/11 09:37 11 11 0 KIL001
 -     */
 -    static final String MEMBER_LIST_REGEX = "(\\S+)\\s+" + // name
 -            "\\S+\\s+" + // version, modification (ignored)
 -            "\\S+\\s+" + // create date (ignored)
 -            "(\\S+)\\s+" + // modification date
 -            "(\\S+)\\s+" + // modification time
 -            "\\S+\\s+" + // size in lines (ignored)
 -            "\\S+\\s+" + // size in lines at creation(ignored)
 -            "\\S+\\s+" + // lines modified (ignored)
 -            "\\S+\\s*"; // id of user who modified (ignored)
 -
 -    /**
 -     * Matches these entries, note: no header: IBMUSER1 JOB01906 OUTPUT 3 Spool
 -     * Files 012345678901234567890123456789012345678901234 1 2 3 4
 -     */
 -    static final String JES_LEVEL_1_LIST_REGEX = "(\\S+)\\s+" + // job
 -                                                                        // name
 -                                                                        // ignored
 -            "(\\S+)\\s+" + // job number
 -            "(\\S+)\\s+" + // job status (OUTPUT,INPUT,ACTIVE)
 -            "(\\S+)\\s+" + // number of spool files
 -            "(\\S+)\\s+" + // Text "Spool" ignored
 -            "(\\S+)\\s*" // Text "Files" ignored
 -    ;
 -
 -    /**
 -     * JES INTERFACE LEVEL 2 parser Matches these entries: JOBNAME JOBID OWNER
 -     * STATUS CLASS IBMUSER1 JOB01906 IBMUSER OUTPUT A RC=0000 3 spool files
 -     * IBMUSER TSU01830 IBMUSER OUTPUT TSU ABEND=522 3 spool files
 -     * 012345678901234567890123456789012345678901234 1 2 3 4
 -     * 012345678901234567890123456789012345678901234567890
 -     */
 -
 -    static final String JES_LEVEL_2_LIST_REGEX = "(\\S+)\\s+" + // job
 -                                                                        // name
 -                                                                        // ignored
 -            "(\\S+)\\s+" + // job number
 -            "(\\S+)\\s+" + // owner ignored
 -            "(\\S+)\\s+" + // job status (OUTPUT,INPUT,ACTIVE) ignored
 -            "(\\S+)\\s+" + // job class ignored
 -            "(\\S+).*" // rest ignored
 -    ;
 -
 -    /*
 -     * ---------------------------------------------------------------------
 -     * Very brief and incomplete description of the zOS/MVS-filesystem. (Note:
 -     * "zOS" is the operating system on the mainframe, and is the new name for
 -     * MVS)
 -     * 
 -     * The filesystem on the mainframe does not have hierarchal structure as for
 -     * example the unix filesystem. For a more comprehensive description, please
 -     * refer to the IBM manuals
 -     * 
 -     * @LINK:
 -     * http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dgt2d440/CONTENTS
 -     * 
 -     * 
 -     * Dataset names =============
 -     * 
 -     * A dataset name consist of a number of qualifiers separated by '.', each
 -     * qualifier can be at most 8 characters, and the total length of a dataset
 -     * can be max 44 characters including the dots.
 -     * 
 -     * 
 -     * Dataset organisation ====================
 -     * 
 -     * A dataset represents a piece of storage allocated on one or more disks.
 -     * The structure of the storage is described with the field dataset
 -     * organinsation (DSORG). There are a number of dataset organisations, but
 -     * only two are usable for FTP transfer.
 -     * 
 -     * DSORG: PS: sequential, or flat file PO: partitioned dataset PO-E:
 -     * extended partitioned dataset
 -     * 
 -     * The PS file is just a flat file, as you would find it on the unix file
 -     * system.
 -     * 
 -     * The PO and PO-E files, can be compared to a single level directory
 -     * structure. A PO file consist of a number of dataset members, or files if
 -     * you will. It is possible to CD into the file, and to retrieve the
 -     * individual members.
 -     * 
 -     * 
 -     * Dataset record format =====================
 -     * 
 -     * The physical layout of the dataset is described on the dataset itself.
 -     * There are a number of record formats (RECFM), but just a few is relavant
 -     * for the FTP transfer.
 -     * 
 -     * Any one beginning with either F or V can safely used by FTP transfer. All
 -     * others should only be used with great care, so this version will just
 -     * ignore the other record formats. F means a fixed number of records per
 -     * allocated storage, and V means a variable number of records.
 -     * 
 -     * 
 -     * Other notes ===========
 -     * 
 -     * The file system supports automatically backup and retrieval of datasets.
 -     * If a file is backed up, the ftp LIST command will return: ARCIVE Not
 -     * Direct Access Device KJ.IOP998.ERROR.PL.UNITTEST
 -     * 
 -     * 
 -     * Implementation notes ====================
 -     * 
 -     * Only datasets that have dsorg PS, PO or PO-E and have recfm beginning
 -     * with F or V, is fully parsed.
 -     * 
 -     * The following fields in FTPFile is used: FTPFile.Rawlisting: Always set.
 -     * FTPFile.Type: DIRECTORY_TYPE or FILE_TYPE or UNKNOWN FTPFile.Name: name
 -     * FTPFile.Timestamp: change time or null
 -     * 
 -     * 
 -     * 
 -     * Additional information ======================
 -     * 
 -     * The MVS ftp server supports a number of features via the FTP interface.
 -     * The features are controlled with the FTP command quote site filetype=<SEQ|JES|DB2>
 -     * SEQ is the default and used for normal file transfer JES is used to
 -     * interact with the Job Entry Subsystem (JES) similar to a job scheduler
 -     * DB2 is used to interact with a DB2 subsystem
 -     * 
 -     * This parser supports SEQ and JES.
 -     * 
 -     * 
 -     * 
 -     * 
 -     * 
 -     * 
 -     */
 -
 -    /**
 -     * The sole constructor for a MVSFTPEntryParser object.
 -     * 
 -     */
 -    public MVSFTPEntryParser() {
 -        super(""); // note the regex is set in preParse.
 -        super.configure(null); // configure parser with default configurations
 -    }
 -
 -    /**
 -     * Parses a line of an z/OS - MVS FTP server file listing and converts it
 -     * into a usable format in the form of an <code> FTPFile </code> instance.
 -     * If the file listing line doesn't describe a file, then
 -     * <code> null </code> is returned. Otherwise a <code> FTPFile </code>
 -     * instance representing the file is returned.
 -     * 
 -     * @param entry
 -     *            A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry) {
 -        boolean isParsed = false;
 -        FTPFile f = new FTPFile();
 -
 -        if (isType == FILE_LIST_TYPE)
 -            isParsed = parseFileList(f, entry);
 -        else if (isType == MEMBER_LIST_TYPE) {
 -            isParsed = parseMemberList(f, entry);
 -            if (!isParsed)
 -                isParsed = parseSimpleEntry(f, entry);
 -        } else if (isType == UNIX_LIST_TYPE) {
 -            isParsed = parseUnixList(f, entry);
 -        } else if (isType == JES_LEVEL_1_LIST_TYPE) {
 -            isParsed = parseJeslevel1List(f, entry);
 -        } else if (isType == JES_LEVEL_2_LIST_TYPE) {
 -            isParsed = parseJeslevel2List(f, entry);
 -        }
 -
 -        if (!isParsed)
 -            f = null;
 -        
 -        return f;
 -    }
 -
 -    /**
 -     * Parse entries representing a dataset list. Only datasets with DSORG PS or
 -     * PO or PO-E and with RECFM F* or V* will be parsed.
 -     * 
 -     * Format of ZOS/MVS file list: 1 2 3 4 5 6 7 8 9 10 Volume Unit Referred
 -     * Ext Used Recfm Lrecl BlkSz Dsorg Dsname B10142 3390 2006/03/20 2 31 F 80
 -     * 80 PS MDI.OKL.WORK ARCIVE Not Direct Access Device
 -     * KJ.IOP998.ERROR.PL.UNITTEST B1N231 3390 2006/03/20 1 15 VB 256 27998 PO
 -     * PLU B1N231 3390 2006/03/20 1 15 VB 256 27998 PO-E PLB
 -     * 
 -     * ----------------------------------- Group within Regex [1] Volume [2]
 -     * Unit [3] Referred [4] Ext: number of extents [5] Used [6] Recfm: Record
 -     * format [7] Lrecl: Logical record length [8] BlkSz: Block size [9] Dsorg:
 -     * Dataset organisation. Many exists but only support: PS, PO, PO-E [10]
 -     * Dsname: Dataset name
 -     * 
 -     * Note: When volume is ARCIVE, it means the dataset is stored somewhere in
 -     * a tape archive. These entries is currently not supported by this parser.
 -     * A null value is returned.
 -     * 
 -     * @param file
 -     *            will be updated with Name, Type, Timestamp if parsed.
 -     * @param entry zosDirectoryEntry
 -     * @return true: entry was parsed, false: entry was not parsed.
 -     */
 -    private boolean parseFileList(FTPFile file, String entry) {
 -        if (matches(entry)) {
 -            file.setRawListing(entry);
 -            String name = group(2);
 -            String dsorg = group(1);
 -            file.setName(name);
 -
 -            // DSORG
 -            if ("PS".equals(dsorg)) {
 -                file.setType(FTPFile.FILE_TYPE);
 -            } 
 -            else if ("PO".equals(dsorg) || "PO-E".equals(dsorg)) {
 -                // regex already ruled out anything other than PO or PO-E
 -                file.setType(FTPFile.DIRECTORY_TYPE);
 -            } 
 -            else {
 -                return false;
 -            }
 -            
 -            return true;
 -        }
 -        
 -        return false;
 -    }
 -
 -    /**
 -     * Parse entries within a partitioned dataset.
 -     * 
 -     * Format of a memberlist within a PDS: 1 2 3 4 5 6 7 8 9 Name VV.MM Created
 -     * Changed Size Init Mod Id TBSHELF 01.03 2002/09/12 2002/10/11 09:37 11 11
 -     * 0 KIL001 TBTOOL 01.12 2002/09/12 2004/11/26 19:54 51 28 0 KIL001
 -     * 
 -     * ------------------------------------------- [1] Name [2] VV.MM: Version .
 -     * modification [3] Created: yyyy / MM / dd [4,5] Changed: yyyy / MM / dd
 -     * HH:mm [6] Size: number of lines [7] Init: number of lines when first
 -     * created [8] Mod: number of modified lines a last save [9] Id: User id for
 -     * last update
 -     * 
 -     * 
 -     * @param file
 -     *            will be updated with Name, Type and Timestamp if parsed.
 -     * @param entry zosDirectoryEntry
 -     * @return true: entry was parsed, false: entry was not parsed.
 -     */
 -    private boolean parseMemberList(FTPFile file, String entry) {
 -        if (matches(entry)) {
 -            file.setRawListing(entry);
 -            String name = group(1);
 -            String datestr = group(2) + " " + group(3);
 -            file.setName(name);
 -            file.setType(FTPFile.FILE_TYPE);
 -            try {
 -                file.setTimestamp(super.parseTimestamp(datestr));
 -            } catch (ParseException e) {
 -                e.printStackTrace();
 -                // just ignore parsing errors.
 -                // TODO check this is ok
 -                return false; // this is a parsing failure too.
 -            }
 -            return true;
 -        }
 -
 -        return false;
 -    }
 -
 -    /**
 -     * Assigns the name to the first word of the entry. Only to be used from a
 -     * safe context, for example from a memberlist, where the regex for some
 -     * reason fails. Then just assign the name field of FTPFile.
 -     * 
 -     * @param file
 -     * @param entry
 -     * @return
 -     */
 -    private boolean parseSimpleEntry(FTPFile file, String entry) {
 -        if (entry != null && entry.length() > 0) {
 -            file.setRawListing(entry);
 -            String name = entry.split(" ")[0];
 -            file.setName(name);
 -            file.setType(FTPFile.FILE_TYPE);
 -            return true;
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * Parse the entry as a standard unix file. Using the UnixFTPEntryParser.
 -     * 
 -     * @param file
 -     * @param entry
 -     * @return true: entry is parsed, false: entry could not be parsed.
 -     */
 -    private boolean parseUnixList(FTPFile file, String entry) {
 -        file = unixFTPEntryParser.parseFTPEntry(entry);
 -        if (file == null)
 -            return false;
 -        return true;
 -    }
 -
 -    /**
 -     * Matches these entries, note: no header: [1] [2] [3] [4] [5] IBMUSER1
 -     * JOB01906 OUTPUT 3 Spool Files
 -     * 012345678901234567890123456789012345678901234 1 2 3 4
 -     * ------------------------------------------- Group in regex [1] Job name
 -     * [2] Job number [3] Job status (INPUT,ACTIVE,OUTPUT) [4] Number of sysout
 -     * files [5] The string "Spool Files"
 -     * 
 -     * 
 -     * @param file
 -     *            will be updated with Name, Type and Timestamp if parsed.
 -     * @param entry zosDirectoryEntry
 -     * @return true: entry was parsed, false: entry was not parsed.
 -     */
 -    private boolean parseJeslevel1List(FTPFile file, String entry) {
 -        if (matches(entry)) {
 -            if (group(3).equalsIgnoreCase("OUTPUT")) {
 -                file.setRawListing(entry);
 -                String name = group(2); /* Job Number, used by GET */
 -                file.setName(name);
 -                file.setType(FTPFile.FILE_TYPE);
 -                return true;
 -            }
 -        }
 -
 -        return false;
 -    }
 -
 -    /**
 -     * Matches these entries, note: no header: [1] [2] [3] [4] [5] JOBNAME JOBID
 -     * OWNER STATUS CLASS IBMUSER1 JOB01906 IBMUSER OUTPUT A RC=0000 3 spool
 -     * files IBMUSER TSU01830 IBMUSER OUTPUT TSU ABEND=522 3 spool files
 -     * 012345678901234567890123456789012345678901234 1 2 3 4
 -     * ------------------------------------------- Group in regex [1] Job name
 -     * [2] Job number [3] Owner [4] Job status (INPUT,ACTIVE,OUTPUT) [5] Job
 -     * Class [6] The rest
 -     * 
 -     * 
 -     * @param file
 -     *            will be updated with Name, Type and Timestamp if parsed.
 -     * @param entry zosDirectoryEntry
 -     * @return true: entry was parsed, false: entry was not parsed.
 -     */
 -    private boolean parseJeslevel2List(FTPFile file, String entry) {
 -        if (matches(entry)) {
 -            if (group(4).equalsIgnoreCase("OUTPUT")) {
 -                file.setRawListing(entry);
 -                String name = group(2); /* Job Number, used by GET */
 -                file.setName(name);
 -                file.setType(FTPFile.FILE_TYPE);
 -                return true;
 -            }
 -        }
 -
 -        return false;
 -    }
 -
 -    /**
 -     * preParse is called as part of the interface. Per definition is is called
 -     * before the parsing takes place. Three kind of lists is recognize:
 -     * z/OS-MVS File lists z/OS-MVS Member lists unix file lists
 -     * @since 2.0
 -     */
 -    @Override
 -    public List<String> preParse(List<String> orig) {
 -        // simply remove the header line. Composite logic will take care of the
 -        // two different types of
 -        // list in short order.
 -        if (orig != null && orig.size() > 0) {
 -            String header = orig.get(0);
 -            if (header.indexOf("Volume") >= 0 && header.indexOf("Dsname") >= 0) {
 -                setType(FILE_LIST_TYPE);
 -                super.setRegex(FILE_LIST_REGEX);
 -            } else if (header.indexOf("Name") >= 0 && header.indexOf("Id") >= 0) {
 -                setType(MEMBER_LIST_TYPE);
 -                super.setRegex(MEMBER_LIST_REGEX);
 -            } else if (header.indexOf("total") == 0) {
 -                setType(UNIX_LIST_TYPE);
 -                unixFTPEntryParser = new UnixFTPEntryParser();
 -            } else if (header.indexOf("Spool Files") >= 30) {
 -                setType(JES_LEVEL_1_LIST_TYPE);
 -                super.setRegex(JES_LEVEL_1_LIST_REGEX);
 -            } else if (header.indexOf("JOBNAME") == 0
 -                    && header.indexOf("JOBID") > 8) {// header contains JOBNAME JOBID OWNER // STATUS CLASS
 -                setType(JES_LEVEL_2_LIST_TYPE);
 -                super.setRegex(JES_LEVEL_2_LIST_REGEX);
 -            } else {
 -                setType(UNKNOWN_LIST_TYPE);
 -            }
 -            
 -            if (isType != JES_LEVEL_1_LIST_TYPE) { // remove header is necessary
 -                orig.remove(0);
 -            }
 -        }
 -        
 -        return orig;
 -    }
 -    
 -    /**
 -     * Explicitly set the type of listing being processed.
 -     * @param type The listing type.
 -     */
 -    void setType(int type) {
 -        isType = type;
 -    }
 -
 -    /* 
 -     * @return
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(FTPClientConfig.SYST_MVS,
 -                DEFAULT_DATE_FORMAT, null, null, null, null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/NTFTPEntryParser.class b/org/apache/commons/net/ftp/parser/NTFTPEntryParser.classBinary files differ deleted file mode 100644 index bb3ed8f..0000000 --- a/org/apache/commons/net/ftp/parser/NTFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java b/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java deleted file mode 100644 index b6bc75e..0000000 --- a/org/apache/commons/net/ftp/parser/NTFTPEntryParser.java +++ /dev/null @@ -1,147 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import java.text.ParseException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Implementation of FTPFileEntryParser and FTPFileListParser for NT Systems.
 - *
 - * @author  <a href="Winston.Ojeda@qg.com">Winston Ojeda</a>
 - * @author <a href="mailto:scohen@apache.org">Steve Cohen</a>
 - * @version $Id: NTFTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - */
 -public class NTFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 -{
 -    
 -    private static final String DEFAULT_DATE_FORMAT 
 -        = "MM-dd-yy hh:mma"; //11-09-01 12:30PM
 -
 -
 -    /**
 -     * this is the regular expression used by this parser.
 -     */
 -    private static final String REGEX =
 -        "(\\S+)\\s+(\\S+)\\s+"
 -        + "(?:(<DIR>)|([0-9]+))\\s+"
 -        + "(\\S.*)";
 -
 -    /**
 -     * The sole constructor for an NTFTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public NTFTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of an NTFTPEntryParser object 
 -     * with something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -     public NTFTPEntryParser(FTPClientConfig config)
 -    {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -    /**
 -     * Parses a line of an NT FTP server file listing and converts it into a
 -     * usable format in the form of an <code> FTPFile </code> instance.  If the
 -     * file listing line doesn't describe a file, <code> null </code> is
 -     * returned, otherwise a <code> FTPFile </code> instance representing the
 -     * files in the directory is returned.
 -     * <p>
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry)
 -    {
 -        FTPFile f = new FTPFile();
 -        f.setRawListing(entry);
 -
 -        if (matches(entry))
 -        {
 -            String datestr = group(1)+" "+group(2);
 -            String dirString = group(3);
 -            String size = group(4);
 -            String name = group(5);
 -            try
 -            {
 -                f.setTimestamp(super.parseTimestamp(datestr));
 -            }
 -            catch (ParseException e)
 -            {
 -                // intentionally do nothing
 -            }
 -
 -            if (null == name || name.equals(".") || name.equals(".."))
 -            {
 -                return (null);
 -            }
 -            f.setName(name);
 -
 -
 -            if ("<DIR>".equals(dirString))
 -            {
 -                f.setType(FTPFile.DIRECTORY_TYPE);
 -                f.setSize(0);
 -            }
 -            else
 -            {
 -                f.setType(FTPFile.FILE_TYPE);
 -                if (null != size)
 -                {
 -                  f.setSize(Long.parseLong(size));
 -                }
 -            }
 -            return (f);
 -        }
 -        return null;
 -    }
 -    
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    public FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(
 -                FTPClientConfig.SYST_NT,
 -                DEFAULT_DATE_FORMAT,
 -                null, null, null, null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.class b/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.classBinary files differ deleted file mode 100644 index 71babc5..0000000 --- a/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java b/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java deleted file mode 100644 index 3cbea82..0000000 --- a/org/apache/commons/net/ftp/parser/NetwareFTPEntryParser.java +++ /dev/null @@ -1,176 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.ParseException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Implementation of FTPFileEntryParser and FTPFileListParser for Netware Systems. Note that some of the proprietary
 - * extensions for Novell-specific operations are not supported. See 
 - * <a href="http://www.novell.com/documentation/nw65/index.html?page=/documentation/nw65/ftp_enu/data/fbhbgcfa.html">http://www.novell.com/documentation/nw65/index.html?page=/documentation/nw65/ftp_enu/data/fbhbgcfa.html</a>
 - * for more details.
 - *
 - * @author <a href="rwinston@apache.org">Rory Winston</a>
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - * @version $Id: NetwareFTPEntryParser.java 658520 2008-05-21 01:14:11Z sebb $
 - * @since 1.5
 - */
 -public class NetwareFTPEntryParser extends ConfigurableFTPFileEntryParserImpl {
 -
 -    /**
 -     * Default date format is e.g. Feb 22 2006
 -     */
 -    private static final String DEFAULT_DATE_FORMAT = "MMM dd yyyy";
 -
 -    /**
 -     * Default recent date format is e.g. Feb 22 17:32
 -     */
 -    private static final String DEFAULT_RECENT_DATE_FORMAT = "MMM dd HH:mm";
 -
 -    /**
 -     * this is the regular expression used by this parser.
 -     * Example: d [-W---F--] SCION_VOL2                        512 Apr 13 23:12 VOL2
 -     */
 -    private static final String REGEX = "(d|-){1}\\s+"      // Directory/file flag 
 -            + "\\[(.*)\\]\\s+"                              // Attributes
 -            + "(\\S+)\\s+" + "(\\d+)\\s+"                   // Owner and size
 -            + "(\\S+\\s+\\S+\\s+((\\d+:\\d+)|(\\d{4})))"    // Long/short date format
 -            + "\\s+(.*)";                                   // Filename (incl. spaces)
 -
 -    /**
 -     * The default constructor for a NetwareFTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public NetwareFTPEntryParser() {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of an NetwareFTPEntryParser object 
 -     * with something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -    public NetwareFTPEntryParser(FTPClientConfig config) {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -    /**
 -     * Parses a line of an NetwareFTP server file listing and converts it into a
 -     * usable format in the form of an <code> FTPFile </code> instance.  If the
 -     * file listing line doesn't describe a file, <code> null </code> is
 -     * returned, otherwise a <code> FTPFile </code> instance representing the
 -     * files in the directory is returned.
 -     * <p>
 -     * <p>
 -     * Netware file permissions are in the following format:  RWCEAFMS, and are explained as follows:
 -     * <ul>
 -     * <li><b>S</b> - Supervisor; All rights.
 -     * <li><b>R</b> - Read; Right to open and read or execute.
 -     * <li><b>W</b> - Write; Right to open and modify.
 -     * <li><b>C</b> - Create; Right to create; when assigned to a file, allows a deleted file to be recovered.
 -     * <li><b>E</b> - Erase; Right to delete.
 -     * <li><b>M</b> - Modify; Right to rename a file and to change attributes.
 -     * <li><b>F</b> - File Scan; Right to see directory or file listings.
 -     * <li><b>A</b> - Access Control; Right to modify trustee assignments and the Inherited Rights Mask.
 -     * </ul>
 -     * 
 -     * See <a href="http://www.novell.com/documentation/nfap10/index.html?page=/documentation/nfap10/nfaubook/data/abxraws.html">here</a> 
 -     * for more details
 -     * 
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry) {
 -
 -        FTPFile f = new FTPFile();
 -        if (matches(entry)) {
 -            String dirString = group(1);
 -            String attrib = group(2);
 -            String user = group(3);
 -            String size = group(4);
 -            String datestr = group(5);
 -            String name = group(9);
 -
 -            try {
 -                f.setTimestamp(super.parseTimestamp(datestr));
 -            } catch (ParseException e) {
 -                 // intentionally do nothing
 -            }
 -
 -            //is it a DIR or a file
 -            if (dirString.trim().equals("d")) {
 -                f.setType(FTPFile.DIRECTORY_TYPE);
 -            } else // Should be "-"
 -            {
 -                f.setType(FTPFile.FILE_TYPE);
 -            }
 -
 -            f.setUser(user);
 -
 -            //set the name
 -            f.setName(name.trim());
 -
 -            //set the size
 -            f.setSize(Long.parseLong(size.trim()));
 -
 -            // Now set the permissions (or at least a subset thereof - full permissions would probably require 
 -            // subclassing FTPFile and adding extra metainformation there)
 -            if (attrib.indexOf("R") != -1) {
 -                f.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION,
 -                        true);
 -            }
 -            if (attrib.indexOf("W") != -1) {
 -                f.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION,
 -                        true);
 -            }
 -
 -            return (f);
 -        }
 -        return null;
 -
 -    }
 -
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(FTPClientConfig.SYST_NETWARE,
 -                DEFAULT_DATE_FORMAT, DEFAULT_RECENT_DATE_FORMAT, null, null,
 -                null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.class b/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.classBinary files differ deleted file mode 100644 index 332ae30..0000000 --- a/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java b/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java deleted file mode 100644 index dc02ffb..0000000 --- a/org/apache/commons/net/ftp/parser/OS2FTPEntryParser.java +++ /dev/null @@ -1,147 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import java.text.ParseException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Implementation of FTPFileEntryParser and FTPFileListParser for OS2 Systems.
 - *
 - * @author <a href="Winston.Ojeda@qg.com">Winston Ojeda</a>
 - * @author <a href="mailto:scohen@apache.org">Steve Cohen</a>
 - * @version $Id: OS2FTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - */
 -public class OS2FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 -
 -{
 -    
 -    private static final String DEFAULT_DATE_FORMAT 
 -        = "MM-dd-yy HH:mm"; //11-09-01 12:30
 -    /**
 -     * this is the regular expression used by this parser.
 -     */
 -    private static final String REGEX =
 -        "\\s*([0-9]+)\\s*"
 -        + "(\\s+|[A-Z]+)\\s*"
 -        + "(DIR|\\s+)\\s*"
 -        + "(\\S+)\\s+(\\S+)\\s+" /* date stuff */
 -        + "(\\S.*)";
 -
 -    /**
 -     * The default constructor for a OS2FTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public OS2FTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of an OS2FTPEntryParser object 
 -     * with something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -     public OS2FTPEntryParser(FTPClientConfig config)
 -    {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -    /**
 -     * Parses a line of an OS2 FTP server file listing and converts it into a
 -     * usable format in the form of an <code> FTPFile </code> instance.  If the
 -     * file listing line doesn't describe a file, <code> null </code> is
 -     * returned, otherwise a <code> FTPFile </code> instance representing the
 -     * files in the directory is returned.
 -     * <p>
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry)
 -    {
 -
 -        FTPFile f = new FTPFile();
 -        if (matches(entry))
 -        {
 -            String size = group(1);
 -            String attrib = group(2);
 -            String dirString = group(3);
 -            String datestr = group(4)+" "+group(5);
 -            String name = group(6);
 -            try
 -            {
 -                f.setTimestamp(super.parseTimestamp(datestr));
 -            }
 -            catch (ParseException e)
 -            {
 -                // intentionally do nothing
 -            }
 -
 -
 -            //is it a DIR or a file
 -            if (dirString.trim().equals("DIR") || attrib.trim().equals("DIR"))
 -            {
 -                f.setType(FTPFile.DIRECTORY_TYPE);
 -            }
 -            else
 -            {
 -                f.setType(FTPFile.FILE_TYPE);
 -            }
 -
 -
 -            //set the name
 -            f.setName(name.trim());
 -
 -            //set the size
 -            f.setSize(Long.parseLong(size.trim()));
 -
 -            return (f);
 -        }
 -        return null;
 -
 -    }
 -
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(
 -                FTPClientConfig.SYST_OS2,
 -                DEFAULT_DATE_FORMAT,
 -                null, null, null, null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.class b/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.classBinary files differ deleted file mode 100644 index b77795b..0000000 --- a/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java b/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java deleted file mode 100644 index 66c370b..0000000 --- a/org/apache/commons/net/ftp/parser/OS400FTPEntryParser.java +++ /dev/null @@ -1,158 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.text.ParseException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * @version $Id: OS400FTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - */
 -
 -public class OS400FTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 -{
 -    private static final String DEFAULT_DATE_FORMAT 
 -        = "yy/MM/dd HH:mm:ss"; //01/11/09 12:30:24
 -    
 -
 -
 -    private static final String REGEX =
 -        "(\\S+)\\s+"                // user
 -        + "(\\d+)\\s+"              // size
 -        + "(\\S+)\\s+(\\S+)\\s+"    // date stuff 
 -        + "(\\*\\S+)\\s+"               // *STMF/*DIR
 -        + "(\\S+/?)\\s*";               // filename
 -
 -    
 -    /**
 -     * The default constructor for a OS400FTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public OS400FTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of an OS400FTPEntryParser object 
 -     * with something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -    public OS400FTPEntryParser(FTPClientConfig config)
 -    {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -
 -    public FTPFile parseFTPEntry(String entry)
 -    {
 -
 -        FTPFile file = new FTPFile();
 -        file.setRawListing(entry);
 -        int type;
 -
 -        if (matches(entry))
 -        {
 -            String usr = group(1);
 -            String filesize = group(2);
 -            String datestr = group(3)+" "+group(4);
 -            String typeStr = group(5);
 -            String name = group(6);
 -            
 -            try
 -            {
 -                file.setTimestamp(super.parseTimestamp(datestr));
 -            }
 -            catch (ParseException e)
 -            {
 -                // intentionally do nothing
 -            }
 -
 -
 -            if (typeStr.equalsIgnoreCase("*STMF"))
 -            {
 -                type = FTPFile.FILE_TYPE;
 -            }
 -            else if (typeStr.equalsIgnoreCase("*DIR"))
 -            {
 -                type = FTPFile.DIRECTORY_TYPE;
 -            }
 -            else
 -            {
 -                type = FTPFile.UNKNOWN_TYPE;
 -            }
 -
 -            file.setType(type);
 -
 -            file.setUser(usr);
 -
 -            try
 -            {
 -                file.setSize(Long.parseLong(filesize));
 -            }
 -            catch (NumberFormatException e)
 -            {
 -                // intentionally do nothing
 -            }
 -
 -            if (name.endsWith("/"))
 -            {
 -                name = name.substring(0, name.length() - 1);
 -            }
 -            int pos = name.lastIndexOf('/');
 -            if (pos > -1)
 -            {
 -                name = name.substring(pos + 1);
 -            }
 -
 -            file.setName(name);
 -
 -            return file;
 -        }
 -        return null;
 -    }
 -
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(
 -                FTPClientConfig.SYST_OS400,
 -                DEFAULT_DATE_FORMAT,
 -                null, null, null, null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/ParserInitializationException.class b/org/apache/commons/net/ftp/parser/ParserInitializationException.classBinary files differ deleted file mode 100644 index 4f7fb6f..0000000 --- a/org/apache/commons/net/ftp/parser/ParserInitializationException.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/ParserInitializationException.java b/org/apache/commons/net/ftp/parser/ParserInitializationException.java deleted file mode 100644 index 8af9261..0000000 --- a/org/apache/commons/net/ftp/parser/ParserInitializationException.java +++ /dev/null @@ -1,65 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -/**
 - * This class encapsulates all errors that may be thrown by
 - * the process of an FTPFileEntryParserFactory creating and
 - * instantiating an FTPFileEntryParser.
 - */
 -public class ParserInitializationException extends RuntimeException {
 -
 -    /**
 -     * Root exception that caused this to be thrown
 -     */
 -    private final Throwable rootCause;
 -
 -    /**
 -     * Constucts a ParserInitializationException with just a message
 -     *
 -     * @param message Exception message
 -     */
 -    public ParserInitializationException(String message) {
 -        super(message);
 -        this.rootCause = null;
 -    }
 -
 -    /**
 -     * Constucts a ParserInitializationException with a message
 -     * and a root cause.
 -     *
 -     * @param message   Exception message
 -     * @param rootCause root cause throwable that caused
 -     * this to be thrown
 -     */
 -    public ParserInitializationException(String message, Throwable rootCause) {
 -        super(message);
 -        this.rootCause = rootCause;
 -    }
 -
 -    /**
 -     * returns the root cause of this exception or null
 -     * if no root cause was specified.
 -     *
 -     * @return the root cause of this exception being thrown
 -     */
 -    public Throwable getRootCause() {
 -        return this.rootCause;
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.class b/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.classBinary files differ deleted file mode 100644 index 3cd32f0..0000000 --- a/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java b/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java deleted file mode 100644 index 5277444..0000000 --- a/org/apache/commons/net/ftp/parser/RegexFTPFileEntryParserImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.util.regex.MatchResult;
 -import java.util.regex.Matcher;
 -import java.util.regex.Pattern;
 -import java.util.regex.PatternSyntaxException;
 -
 -import org.apache.commons.net.ftp.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 for all regular based FTPFileEntryParser
 - *
 - * @author Steve Cohen <scohen@apache.org>
 - */
 -public abstract class RegexFTPFileEntryParserImpl extends
 -        FTPFileEntryParserImpl {
 -    /**
 -     * internal pattern the matcher tries to match, representing a file
 -     * entry
 -     */
 -    private Pattern pattern = null;
 -
 -    /**
 -     * internal match result used by the parser
 -     */
 -    private MatchResult result = null;
 -
 -    /**
 -     * Internal PatternMatcher object used by the parser.  It has protected
 -     * scope in case subclasses want to make use of it for their own purposes.
 -     */
 -    protected Matcher _matcher_ = null;
 -
 -    /**
 -     * The constructor for a RegexFTPFileEntryParserImpl object.
 -     *
 -     * @param regex  The regular expression with which this object is
 -     * initialized.
 -     *
 -     * @exception 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.
 -     */
 -
 -    public RegexFTPFileEntryParserImpl(String regex) {
 -        super();
 -        setRegex(regex);
 -    }
 -
 -    /**
 -     * Convenience method delegates to the internal MatchResult's matches()
 -     * method.
 -     *
 -     * @param s the String to be matched
 -     * @return true if s matches this object's regular expression.
 -     */
 -
 -    public boolean matches(String s) {
 -        this.result = null;
 -        _matcher_ = pattern.matcher(s);
 -        if (_matcher_.matches()) {
 -            this.result = _matcher_.toMatchResult();
 -        }
 -        return null != this.result;
 -    }
 -
 -    /**
 -     * Convenience method 
 -     *
 -     * @return the number of groups() in the internal MatchResult.
 -     */
 -
 -    public int getGroupCnt() {
 -        if (this.result == null) {
 -            return 0;
 -        }
 -        return this.result.groupCount();
 -    }
 -
 -    /**
 -     * Convenience method delegates to the internal MatchResult's group()
 -     * method.
 -     *
 -     * @param matchnum match group number to be retrieved
 -     *
 -     * @return the content of the <code>matchnum'th<code> group of the internal
 -     *         match or null if this method is called without a match having
 -     *         been made.
 -     */
 -    public String group(int matchnum) {
 -        if (this.result == null) {
 -            return null;
 -        }
 -        return this.result.group(matchnum);
 -    }
 -
 -    /**
 -     * For debugging purposes - returns a string shows each match group by
 -     * number.
 -     *
 -     * @return a string shows each match group by number.
 -     */
 -
 -    public String getGroupsAsString() {
 -        StringBuffer b = new StringBuffer();
 -        for (int i = 1; i <= this.result.groupCount(); i++) {
 -            b.append(i).append(") ").append(this.result.group(i)).append(
 -                    System.getProperty("line.separator"));
 -        }
 -        return b.toString();
 -    }
 -
 -    /**
 -     * Alter the current regular expression being utilised for entry parsing 
 -     * and create a new {@link Pattern} instance.
 -     * @param regex The new regular expression
 -     * @return 
 -     * @since 2.0
 -     */
 -    public boolean setRegex(String regex) {
 -        try {
 -            pattern = Pattern.compile(regex);
 -        } catch (PatternSyntaxException pse) {
 -            throw new IllegalArgumentException("Unparseable regex supplied: "
 -                    + regex);
 -        }
 -        return (pattern != null);
 -    }
 -
 -}
 diff --git a/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.class b/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.classBinary files differ deleted file mode 100644 index 27a082b..0000000 --- a/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java b/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java deleted file mode 100644 index 2a2a909..0000000 --- a/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java +++ /dev/null @@ -1,295 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import java.text.ParseException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -
 -/**
 - * Implementation FTPFileEntryParser and FTPFileListParser for standard
 - * Unix Systems.
 - *
 - * This class is based on the logic of Daniel Savarese's
 - * DefaultFTPListParser, but adapted to use regular expressions and to fit the
 - * new FTPFileEntryParser interface.
 - * @version $Id: UnixFTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - */
 -public class UnixFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 -{
 -    
 -    static final String DEFAULT_DATE_FORMAT 
 -        = "MMM d yyyy"; //Nov 9 2001
 -    
 -    static final String DEFAULT_RECENT_DATE_FORMAT 
 -        = "MMM d HH:mm"; //Nov 9 20:06
 -
 -    static final String NUMERIC_DATE_FORMAT 
 -        = "yyyy-MM-dd HH:mm"; //2001-11-09 20:06
 -
 -    /**
 -     * Some Linux distributions are now shipping an FTP server which formats
 -     * file listing dates in an all-numeric format: 
 -     * <code>"yyyy-MM-dd HH:mm</code>.  
 -     * This is a very welcome development,  and hopefully it will soon become 
 -     * the standard.  However, since it is so new, for now, and possibly 
 -     * forever, we merely accomodate it, but do not make it the default.
 -     * <p>
 -     * For now end users may specify this format only via 
 -     * <code>UnixFTPEntryParser(FTPClientConfig)</code>.
 -     * Steve Cohen - 2005-04-17
 -     */
 -    public static final FTPClientConfig NUMERIC_DATE_CONFIG =
 -        new FTPClientConfig(
 -                FTPClientConfig.SYST_UNIX,
 -                NUMERIC_DATE_FORMAT,
 -                null, null, null, null);
 -
 -    /**
 -     * this is the regular expression used by this parser.
 -     *
 -     * Permissions:
 -     *    r   the file is readable
 -     *    w   the file is writable
 -     *    x   the file is executable
 -     *    -   the indicated permission is not granted
 -     *    L   mandatory locking occurs during access (the set-group-ID bit is
 -     *        on and the group execution bit is off)
 -     *    s   the set-user-ID or set-group-ID bit is on, and the corresponding
 -     *        user or group execution bit is also on
 -     *    S   undefined bit-state (the set-user-ID bit is on and the user
 -     *        execution bit is off)
 -     *    t   the 1000 (octal) bit, or sticky bit, is on [see chmod(1)], and
 -     *        execution is on
 -     *    T   the 1000 bit is turned on, and execution is off (undefined bit-
 -     *        state)
 -     *    e   z/OS external link bit
 -     */
 -    private static final String REGEX =
 -        "([bcdelfmpSs-])"
 -        +"(((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-])))\\+?\\s+"
 -        + "(\\d+)\\s+"
 -        + "(?:(\\S+(?:\\s\\S+)*?)\\s+)?"                // owner name (optional spaces)
 -        + "(?:(\\S+(?:\\s\\S+)*)\\s+)?"                 // group name (optional spaces)
 -        + "(\\d+(?:,\\s*\\d+)?)\\s+"
 -        
 -        /*
 -          numeric or standard format date
 -        */
 -        + "((?:\\d+[-/]\\d+[-/]\\d+)|(?:\\S+\\s+\\S+))\\s+"
 -        
 -        /* 
 -           year (for non-recent standard format) 
 -           or time (for numeric or recent standard format  
 -        */
 -        + "(\\d+(?::\\d+)?)\\s+"
 -        
 -        + "(\\S*)(\\s*.*)";
 -
 -
 -    /**
 -     * The default constructor for a UnixFTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public UnixFTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of a UnixFTPEntryParser object with
 -     * something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -    public UnixFTPEntryParser(FTPClientConfig config)
 -    {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -
 -    /**
 -     * Parses a line of a unix (standard) FTP server file listing and converts
 -     * it into a usable format in the form of an <code> FTPFile </code>
 -     * instance.  If the file listing line doesn't describe a file,
 -     * <code> null </code> is returned, otherwise a <code> FTPFile </code>
 -     * instance representing the files in the directory is returned.
 -     * <p>
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry) {
 -        FTPFile file = new FTPFile();
 -        file.setRawListing(entry);
 -        int type;
 -        boolean isDevice = false;
 -
 -        if (matches(entry))
 -        {
 -            String typeStr = group(1);
 -            String hardLinkCount = group(15);
 -            String usr = group(16);
 -            String grp = group(17);
 -            String filesize = group(18);
 -            String datestr = group(19) + " " + group(20);
 -            String name = group(21);
 -            String endtoken = group(22);
 -
 -            try
 -            {
 -                file.setTimestamp(super.parseTimestamp(datestr));
 -            }
 -            catch (ParseException e)
 -            {
 -                 // intentionally do nothing
 -            }
 -            
 -            
 -            // bcdlfmpSs-
 -            switch (typeStr.charAt(0))
 -            {
 -            case 'd':
 -                type = FTPFile.DIRECTORY_TYPE;
 -                break;
 -            case 'e':
 -                type = FTPFile.SYMBOLIC_LINK_TYPE;
 -                break;
 -            case 'l':
 -                type = FTPFile.SYMBOLIC_LINK_TYPE;
 -                break;
 -            case 'b':
 -            case 'c':
 -                isDevice = true;
 -                // break; - fall through
 -            case 'f':
 -            case '-':
 -                type = FTPFile.FILE_TYPE;
 -                break;
 -            default:
 -                type = FTPFile.UNKNOWN_TYPE;
 -            }
 -
 -            file.setType(type);
 -
 -            int g = 4;
 -            for (int access = 0; access < 3; access++, g += 4)
 -            {
 -                // Use != '-' to avoid having to check for suid and sticky bits
 -                file.setPermission(access, FTPFile.READ_PERMISSION,
 -                                   (!group(g).equals("-")));
 -                file.setPermission(access, FTPFile.WRITE_PERMISSION,
 -                                   (!group(g + 1).equals("-")));
 -
 -                String execPerm = group(g + 2);
 -                if (!execPerm.equals("-") && !Character.isUpperCase(execPerm.charAt(0)))
 -                {
 -                    file.setPermission(access, FTPFile.EXECUTE_PERMISSION, true);
 -                }
 -                else
 -                {
 -                    file.setPermission(access, FTPFile.EXECUTE_PERMISSION, false);
 -                }
 -            }
 -
 -            if (!isDevice)
 -            {
 -                try
 -                {
 -                    file.setHardLinkCount(Integer.parseInt(hardLinkCount));
 -                }
 -                catch (NumberFormatException e)
 -                {
 -                    // intentionally do nothing
 -                }
 -            }
 -
 -            file.setUser(usr);
 -            file.setGroup(grp);
 -
 -            try
 -            {
 -                file.setSize(Long.parseLong(filesize));
 -            }
 -            catch (NumberFormatException e)
 -            {
 -                // intentionally do nothing
 -            }
 -            
 -            if (null == endtoken)
 -            {
 -                file.setName(name);
 -            }
 -            else
 -            {
 -                // oddball cases like symbolic links, file names
 -                // with spaces in them.
 -                name += endtoken;
 -                if (type == FTPFile.SYMBOLIC_LINK_TYPE)
 -                {
 -
 -                    int end = name.indexOf(" -> ");
 -                    // Give up if no link indicator is present
 -                    if (end == -1)
 -                    {
 -                        file.setName(name);
 -                    }
 -                    else
 -                    {
 -                        file.setName(name.substring(0, end));
 -                        file.setLink(name.substring(end + 4));
 -                    }
 -
 -                }
 -                else
 -                {
 -                    file.setName(name);
 -                }
 -            }
 -            return file;
 -        }
 -        return null;
 -    }
 -
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(
 -                FTPClientConfig.SYST_UNIX,
 -                DEFAULT_DATE_FORMAT,
 -                DEFAULT_RECENT_DATE_FORMAT,
 -                null, null, null);
 -    }
 -    
 -}
 diff --git a/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.class b/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.classBinary files differ deleted file mode 100644 index ee8d5f3..0000000 --- a/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java b/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java deleted file mode 100644 index 1e55ede..0000000 --- a/org/apache/commons/net/ftp/parser/VMSFTPEntryParser.java +++ /dev/null @@ -1,288 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -import java.io.BufferedReader;
 -import java.io.IOException;
 -import java.io.InputStream;
 -import java.text.ParseException;
 -import java.util.StringTokenizer;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -import org.apache.commons.net.ftp.FTPFile;
 -import org.apache.commons.net.ftp.FTPListParseEngine;
 -
 -/**
 - * 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)",
 - * <P><B>
 - * Note: VMSFTPEntryParser can only be instantiated through the
 - * DefaultFTPParserFactory by classname.  It will not be chosen
 - * by the autodetection scheme.
 - * </B>
 - * <P>
 - *
 - * @author  <a href="Winston.Ojeda@qg.com">Winston Ojeda</a>
 - * @author <a href="mailto:scohen@apache.org">Steve Cohen</a>
 - * @author <a href="sestegra@free.fr">Stephane ESTE-GRACIAS</a>
 - * @version $Id: VMSFTPEntryParser.java 658518 2008-05-21 01:04:30Z sebb $
 - *
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - * @see org.apache.commons.net.ftp.parser.DefaultFTPFileEntryParserFactory
 - */
 -public class VMSFTPEntryParser extends ConfigurableFTPFileEntryParserImpl
 -{
 -
 -    private static final String DEFAULT_DATE_FORMAT 
 -        = "d-MMM-yyyy HH:mm:ss"; //9-NOV-2001 12:30:24
 -
 -    /**
 -     * this is the regular expression used by this parser.
 -     */
 -    private static final String REGEX =
 -        "(.*;[0-9]+)\\s*"                                                   //1  file and version
 -        + "(\\d+)/\\d+\\s*"                                                 //2  size/allocated
 -        +"(\\S+)\\s+(\\S+)\\s+"                                             //3+4 date and time
 -        + "\\[(([0-9$A-Za-z_]+)|([0-9$A-Za-z_]+),([0-9$a-zA-Z_]+))\\]?\\s*" //5(6,7,8) owner
 -        + "\\([a-zA-Z]*,([a-zA-Z]*),([a-zA-Z]*),([a-zA-Z]*)\\)";            //9,10,11 Permissions (O,G,W)
 -    // TODO - perhaps restrict permissions to [RWED]* ?
 -
 -
 -
 -    /**
 -     * Constructor for a VMSFTPEntryParser object.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public VMSFTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of a VMSFTPEntryParser object with
 -     * something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -    public VMSFTPEntryParser(FTPClientConfig config)
 -    {
 -        super(REGEX);
 -        configure(config);
 -    }
 -
 -
 -
 -    /***
 -     * 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 IOException  If an I/O error occurs reading the listStream.
 -     ***/
 -    public FTPFile[] parseFileList(InputStream listStream) throws IOException {
 -        FTPListParseEngine engine = new FTPListParseEngine(this);
 -        engine.readServerList(listStream);
 -        return engine.getFiles();
 -    }
 -
 -
 -
 -    /**
 -     * Parses a line of a VMS FTP server file listing and converts it into a
 -     * usable format in the form of an <code> FTPFile </code> instance.  If the
 -     * file listing line doesn't describe a file, <code> null </code> is
 -     * returned, otherwise a <code> FTPFile </code> instance representing the
 -     * files in the directory is returned.
 -     * <p>
 -     * @param entry A line of text from the file listing
 -     * @return An FTPFile instance corresponding to the supplied entry
 -     */
 -    public FTPFile parseFTPEntry(String entry)
 -    {
 -        //one block in VMS equals 512 bytes
 -        long longBlock = 512;
 -
 -        if (matches(entry))
 -        {
 -            FTPFile f = new FTPFile();
 -            f.setRawListing(entry);
 -            String name = group(1);
 -            String size = group(2);
 -            String datestr = group(3)+" "+group(4);
 -            String owner = group(5);
 -            String permissions[] = new String[3];
 -            permissions[0]= group(9);
 -            permissions[1]= group(10);
 -            permissions[2]= group(11);
 -            try
 -            {
 -                f.setTimestamp(super.parseTimestamp(datestr));
 -            }
 -            catch (ParseException e)
 -            {
 -                 // intentionally do nothing
 -            }
 -
 -
 -            String grp;
 -            String user;
 -            StringTokenizer t = new StringTokenizer(owner, ",");
 -            switch (t.countTokens()) {
 -                case 1:
 -                    grp  = null;
 -                    user = t.nextToken();
 -                    break;
 -                case 2:
 -                    grp  = t.nextToken();
 -                    user = t.nextToken();
 -                    break;
 -                default:
 -                    grp  = null;
 -                    user = null;
 -            }
 -
 -            if (name.lastIndexOf(".DIR") != -1)
 -            {
 -                f.setType(FTPFile.DIRECTORY_TYPE);
 -            }
 -            else
 -            {
 -                f.setType(FTPFile.FILE_TYPE);
 -            }
 -            //set FTPFile name
 -            //Check also for versions to be returned or not
 -            if (isVersioning())
 -            {
 -                f.setName(name);
 -            }
 -            else
 -            {
 -                name = name.substring(0, name.lastIndexOf(";"));
 -                f.setName(name);
 -            }
 -            //size is retreived in blocks and needs to be put in bytes
 -            //for us humans and added to the FTPFile array
 -            long sizeInBytes = Long.parseLong(size) * longBlock;
 -            f.setSize(sizeInBytes);
 -
 -            f.setGroup(grp);
 -            f.setUser(user);
 -            //set group and owner
 -
 -            //Set file permission. 
 -            //VMS has (SYSTEM,OWNER,GROUP,WORLD) users that can contain
 -            //R (read) W (write) E (execute) D (delete)
 -
 -            //iterate for OWNER GROUP WORLD permissions 
 -            for (int access = 0; access < 3; access++)
 -            {
 -                String permission = permissions[access];
 -
 -                f.setPermission(access, FTPFile.READ_PERMISSION, permission.indexOf('R')>=0);
 -                f.setPermission(access, FTPFile.WRITE_PERMISSION, permission.indexOf('W')>=0);
 -                f.setPermission(access, FTPFile.EXECUTE_PERMISSION, permission.indexOf('E')>=0);
 -            }
 -
 -            return f;
 -        }
 -        return null;
 -    }
 -
 -
 -    /**
 -     * 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.
 -     *
 -     * @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 IOException thrown on any IO Error reading from the reader.
 -     */
 -    @Override
 -    public String readNextEntry(BufferedReader reader) throws IOException
 -    {
 -        String line = reader.readLine();
 -        StringBuffer entry = new StringBuffer();
 -        while (line != null)
 -        {
 -            if (line.startsWith("Directory") || line.startsWith("Total")) {
 -                line = reader.readLine();
 -                continue;
 -            }
 -
 -            entry.append(line);
 -            if (line.trim().endsWith(")"))
 -            {
 -                break;
 -            }
 -            line = reader.readLine();
 -        }
 -        return (entry.length() == 0 ? null : entry.toString());
 -    }
 -
 -    protected boolean isVersioning() {
 -        return false;
 -    }
 -    
 -    /**
 -     * Defines a default configuration to be used when this class is
 -     * instantiated without a {@link  FTPClientConfig  FTPClientConfig}
 -     * parameter being specified.
 -     * @return the default configuration for this parser.
 -     */
 -    @Override
 -    protected FTPClientConfig getDefaultConfiguration() {
 -        return new FTPClientConfig(
 -                FTPClientConfig.SYST_VMS,
 -                DEFAULT_DATE_FORMAT,
 -                null, null, null, null);
 -    }
 -
 -
 -}
 -
 -/* Emacs configuration
 - * Local variables:        **
 - * mode:             java  **
 - * c-basic-offset:   4     **
 - * indent-tabs-mode: nil   **
 - * End:                    **
 - */
 diff --git a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser$NameVersion.class b/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser$NameVersion.classBinary files differ deleted file mode 100644 index fd27f2a..0000000 --- a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser$NameVersion.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.class b/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.classBinary files differ deleted file mode 100644 index c0e20b6..0000000 --- a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.class +++ /dev/null diff --git a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java b/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java deleted file mode 100644 index cb25709..0000000 --- a/org/apache/commons/net/ftp/parser/VMSVersioningFTPEntryParser.java +++ /dev/null @@ -1,183 +0,0 @@ -/*
 - * Licensed to the Apache Software Foundation (ASF) under one or more
 - * contributor license agreements.  See the NOTICE file distributed with
 - * this work for additional information regarding copyright ownership.
 - * The ASF licenses this file to You 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.parser;
 -
 -import java.util.HashMap;
 -import java.util.List;
 -import java.util.ListIterator;
 -import java.util.regex.MatchResult;
 -import java.util.regex.Matcher;
 -import java.util.regex.Pattern;
 -import java.util.regex.PatternSyntaxException;
 -
 -import org.apache.commons.net.ftp.FTPClientConfig;
 -
 -/**
 - * Special implementation VMSFTPEntryParser with versioning turned on.
 - * This parser removes all duplicates and only leaves the version with the highest
 - * version number for each filename.
 - *
 - * 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)",
 - * <P>
 - *
 - * @author  <a href="Winston.Ojeda@qg.com">Winston Ojeda</a>
 - * @author <a href="sestegra@free.fr">Stephane ESTE-GRACIAS</a>
 - * @version $Id: VMSVersioningFTPEntryParser.java 636854 2008-03-13 19:55:01Z sebb $
 - *
 - * @see org.apache.commons.net.ftp.FTPFileEntryParser FTPFileEntryParser (for usage instructions)
 - */
 -public class VMSVersioningFTPEntryParser extends VMSFTPEntryParser
 -{
 -
 -    private Matcher _preparse_matcher_;
 -    private Pattern _preparse_pattern_;
 -    private static final String PRE_PARSE_REGEX =
 -        "(.*);([0-9]+)\\s*.*";
 -
 -    /**
 -     * Constructor for a VMSFTPEntryParser object.  Sets the versioning member
 -     * to the supplied value.
 -     *
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     */
 -    public VMSVersioningFTPEntryParser()
 -    {
 -        this(null);
 -    }
 -
 -    /**
 -     * This constructor allows the creation of a VMSVersioningFTPEntryParser 
 -     * object with something other than the default configuration.
 -     *
 -     * @param config The {@link FTPClientConfig configuration} object used to 
 -     * configure this parser.
 -     * @exception IllegalArgumentException
 -     * Thrown if the regular expression is unparseable.  Should not be seen
 -     * under normal conditions.  It it is seen, this is a sign that
 -     * <code>REGEX</code> is  not a valid regular expression.
 -     * @since 1.4
 -     */
 -    public VMSVersioningFTPEntryParser(FTPClientConfig config)
 -    {
 -        super();
 -        configure(config);
 -        try
 -        {
 -            //_preparse_matcher_ = new Perl5Matcher();
 -            _preparse_pattern_ = Pattern.compile(PRE_PARSE_REGEX);
 -        }
 -        catch (PatternSyntaxException pse)
 -        {
 -            throw new IllegalArgumentException (
 -                "Unparseable regex supplied:  " + PRE_PARSE_REGEX);
 -        }
 -
 -   }
 -
 -
 -
 -    private static class NameVersion {
 -        String name;
 -        int versionNumber;
 -        NameVersion(String name, String vers) {
 -            this.name = name;
 -            this.versionNumber = Integer.parseInt(vers);
 -        }
 -    }
 -
 -    /**
 -     * Implement hook provided for those implementers (such as
 -     * VMSVersioningFTPEntryParser, and possibly others) which return
 -     * multiple files with the same name to remove the duplicates ..
 -     *
 -     * @param original Original list
 -     *
 -     * @return Original list purged of duplicates
 -     */
 -    @Override
 -    public List<String> preParse(List<String> original) {
 -        original = super.preParse(original);
 -        HashMap<String, NameVersion> existingEntries = new HashMap<String, NameVersion>();
 -        ListIterator<String> iter = original.listIterator();
 -        while (iter.hasNext()) {
 -            String entry = iter.next().trim();
 -            MatchResult result = null;
 -            _preparse_matcher_ = _preparse_pattern_.matcher(entry);
 -            if (_preparse_matcher_.matches()) {
 -                result = _preparse_matcher_.toMatchResult();
 -                String name = result.group(1);
 -                String version = result.group(2);
 -                NameVersion nv = new NameVersion(name, version);
 -                NameVersion existing = existingEntries.get(name);
 -                if (null != existing) {
 -                    if (nv.versionNumber < existing.versionNumber) {
 -                        iter.remove();  // removal removes from original list.
 -                        continue;
 -                    }
 -                }
 -                existingEntries.put(name, nv);
 -            }
 -
 -        }
 -        // we've now removed all entries less than with less than the largest
 -        // version number for each name that were listed after the largest.
 -        // we now must remove those with smaller than the largest version number
 -        // for each name that were found before the largest
 -        while (iter.hasPrevious()) {
 -            String entry = iter.previous().trim();
 -            MatchResult result = null;
 -            _preparse_matcher_ = _preparse_pattern_.matcher(entry);
 -            if (_preparse_matcher_.matches()) {
 -                result = _preparse_matcher_.toMatchResult();
 -                String name = result.group(1);
 -                String version = result.group(2);
 -                NameVersion nv = new NameVersion(name, version);
 -                NameVersion existing = existingEntries.get(name);
 -                if (null != existing) {
 -                    if (nv.versionNumber < existing.versionNumber) {
 -                        iter.remove(); // removal removes from original list.
 -                    }
 -                }
 -            }
 -
 -        }
 -        return original;
 -    }
 -
 -
 -    @Override
 -    protected boolean isVersioning() {
 -        return true;
 -    }
 -
 -}
 -
 -/* Emacs configuration
 - * Local variables:        **
 - * mode:             java  **
 - * c-basic-offset:   4     **
 - * indent-tabs-mode: nil   **
 - * End:                    **
 - */
 | 
