extensions/net.sf.basedb.xfiles/trunk/src/net/sf/basedb/xfiles/ftp/FtpConnectionParametersComparator.java

Code
Comments
Other
Rev Date Author Line
2572 13 Aug 14 nicklas 1 /**
2572 13 Aug 14 nicklas 2   $Id$
2572 13 Aug 14 nicklas 3
2572 13 Aug 14 nicklas 4   Copyright (C) 2014 Nicklas Nordborg
2572 13 Aug 14 nicklas 5
2572 13 Aug 14 nicklas 6   This file is part of BASE - BioArray Software Environment.
2572 13 Aug 14 nicklas 7   Available at http://base.thep.lu.se/
2572 13 Aug 14 nicklas 8
2572 13 Aug 14 nicklas 9   BASE is free software; you can redistribute it and/or
2572 13 Aug 14 nicklas 10   modify it under the terms of the GNU General Public License
2572 13 Aug 14 nicklas 11   as published by the Free Software Foundation; either version 3
2572 13 Aug 14 nicklas 12   of the License, or (at your option) any later version.
2572 13 Aug 14 nicklas 13
2572 13 Aug 14 nicklas 14   BASE is distributed in the hope that it will be useful,
2572 13 Aug 14 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2572 13 Aug 14 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2572 13 Aug 14 nicklas 17   GNU General Public License for more details.
2572 13 Aug 14 nicklas 18
2572 13 Aug 14 nicklas 19   You should have received a copy of the GNU General Public License
2572 13 Aug 14 nicklas 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2572 13 Aug 14 nicklas 21 */
2572 13 Aug 14 nicklas 22 package net.sf.basedb.xfiles.ftp;
2572 13 Aug 14 nicklas 23
2572 13 Aug 14 nicklas 24 import java.util.Comparator;
2572 13 Aug 14 nicklas 25
2572 13 Aug 14 nicklas 26 import net.sf.basedb.xfiles.ConnectionInfo;
2572 13 Aug 14 nicklas 27
2572 13 Aug 14 nicklas 28 /**
2572 13 Aug 14 nicklas 29   Comparator implementation that compare two sets of connection
2572 13 Aug 14 nicklas 30   parameters for the FTP protocol. The parameters are considered
2572 13 Aug 14 nicklas 31   equal if the connect to the same host with the same username
2572 13 Aug 14 nicklas 32   and password.
2572 13 Aug 14 nicklas 33
2572 13 Aug 14 nicklas 34   @since 1.1
2572 13 Aug 14 nicklas 35 */
2572 13 Aug 14 nicklas 36 public class FtpConnectionParametersComparator 
2572 13 Aug 14 nicklas 37   implements Comparator<ConnectionInfo>
2572 13 Aug 14 nicklas 38 {
2572 13 Aug 14 nicklas 39
2572 13 Aug 14 nicklas 40   @Override
2572 13 Aug 14 nicklas 41   public int compare(ConnectionInfo cp1, ConnectionInfo cp2)
2572 13 Aug 14 nicklas 42   {
2572 13 Aug 14 nicklas 43     int result = compare(cp1.uri.getScheme(), cp2.uri.getScheme());
2572 13 Aug 14 nicklas 44     if (result == 0)
2572 13 Aug 14 nicklas 45     {
2572 13 Aug 14 nicklas 46       result = compare(cp1.uri.getHost(), cp2.uri.getHost());
2572 13 Aug 14 nicklas 47     }
2572 13 Aug 14 nicklas 48     if (result == 0)
2572 13 Aug 14 nicklas 49     {
2572 13 Aug 14 nicklas 50       result = cp2.uri.getPort() - cp1.uri.getPort();
2572 13 Aug 14 nicklas 51     }
2572 13 Aug 14 nicklas 52     if (result == 0)
2572 13 Aug 14 nicklas 53     {
2572 13 Aug 14 nicklas 54       if (cp1.parameters != null && cp2.parameters != null)
2572 13 Aug 14 nicklas 55       {
2572 13 Aug 14 nicklas 56         result = compare(cp1.parameters.getUsername(), cp2.parameters.getUsername());
2572 13 Aug 14 nicklas 57         if (result == 0)
2572 13 Aug 14 nicklas 58         {
2572 13 Aug 14 nicklas 59           result = compare(cp1.parameters.getPassword(), cp2.parameters.getPassword());
2572 13 Aug 14 nicklas 60         }
2572 13 Aug 14 nicklas 61       }
2572 13 Aug 14 nicklas 62       else
2572 13 Aug 14 nicklas 63       {
2572 13 Aug 14 nicklas 64         result = cp1.parameters == cp2.parameters ? 0 : cp1.parameters == null ? 1 : -1;
2572 13 Aug 14 nicklas 65       }
2572 13 Aug 14 nicklas 66     }
2572 13 Aug 14 nicklas 67     return result;
2572 13 Aug 14 nicklas 68   }
2572 13 Aug 14 nicklas 69
2572 13 Aug 14 nicklas 70   
2572 13 Aug 14 nicklas 71   private int compare(String s1, String s2)
2572 13 Aug 14 nicklas 72   {
2572 13 Aug 14 nicklas 73     if (s1 == s2) return 0;
2572 13 Aug 14 nicklas 74     if (s1 == null) return 1;
2572 13 Aug 14 nicklas 75     if (s2 == null) return -1;
2572 13 Aug 14 nicklas 76     return s1.compareTo(s2);
2572 13 Aug 14 nicklas 77   }
2572 13 Aug 14 nicklas 78 }