package railo.runtime.net.ftp;
/**
*
*/
public final class FTPConnectionImpl implements FTPConnection {
private String name;
private String server;
private String username;
private String password;
private int port;
private int timeout;
private short transferMode;
private boolean passive;
private String proxyserver;
private int proxyport;
private String proxyuser;
private String proxypassword;
/**
* @param name
* @param server
* @param username
* @param password
* @param port
* @param timeout
* @param transferMode
* @param passive
* @param proxyserver
*/
public FTPConnectionImpl(String name, String server, String username, String password,int port, int timeout, short transferMode,boolean passive,
String proxyserver,int proxyport,String proxyuser, String proxypassword) {
this.name=name==null?null:name.toLowerCase().trim();
this.server=server;
this.username=username;
this.password=password;
this.port=port;
this.timeout=timeout;
this.transferMode=transferMode;
this.passive=passive;
this.proxyserver=proxyserver;
this.proxyport=proxyport;
this.proxyuser=proxyuser;
this.proxypassword=proxypassword;
}
@Override
public String getName() {
return name;
}
@Override
public String getPassword() {
return password;
}
@Override
public String getServer() {
return server;
}
@Override
public String getUsername() {
return username;
}
@Override
public boolean hasLoginData() {
return server!=null;// && username!=null && password!=null;
}
@Override
public boolean hasName() {
return name!=null;
}
@Override
public int getPort() {
return port;
}
@Override
public int getTimeout() {
return timeout;
}
@Override
public short getTransferMode() {
return transferMode;
}
public void setTransferMode(short transferMode) {
this.transferMode=transferMode;
}
@Override
public boolean isPassive() {
return passive;
}
@Override
public boolean loginEquals(FTPConnection conn) {
return
server.equalsIgnoreCase(conn.getServer()) &&
username.equals(conn.getUsername()) &&
password.equals(conn.getPassword());
}
@Override
public String getProxyPassword() {
return proxypassword;
}
@Override
public int getProxyPort() {
return proxyport;
}
@Override
public String getProxyServer() {
return proxyserver;
}
@Override
public String getProxyUser() {
return proxyuser;
}
public boolean equal(Object o){
if(!(o instanceof FTPConnection)) return false;
FTPConnection other=(FTPConnection) o;
if(neq(other.getPassword(),getPassword())) return false;
if(neq(other.getProxyPassword(),getProxyPassword())) return false;
if(neq(other.getProxyServer(),getProxyServer())) return false;
if(neq(other.getProxyUser(),getProxyUser())) return false;
if(neq(other.getServer(),getServer())) return false;
if(neq(other.getUsername(),getUsername())) return false;
if(other.getPort()!=getPort()) return false;
if(other.getProxyPort()!=getProxyPort()) return false;
//if(other.getTimeout()!=getTimeout()) return false;
if(other.getTransferMode()!=getTransferMode()) return false;
return true;
}
private boolean neq(String left, String right) {
if(left==null) left="";
if(right==null) right="";
return !left.equals(right);
}
}