package diskCacheV111.vehicles.transferManager; import eu.emi.security.authn.x509.X509Credential; import eu.emi.security.authn.x509.impl.KeyAndCertCredential; import java.net.InetSocketAddress; import java.security.KeyStoreException; import java.security.PrivateKey; import java.security.cert.X509Certificate; import diskCacheV111.vehicles.IpProtocolInfo; public class RemoteGsiftpTransferProtocolInfo implements IpProtocolInfo { private static final long serialVersionUID = 7046410066693122355L; private final String name; private final int minor; private final int major; private final InetSocketAddress addr; private final String gsiftpUrl; private long transferTime; private long bytesTransferred; private final String gsiftpTranferManagerName; private final String gsiftpTranferManagerDomain; private boolean emode = true; private int streams_num = 5; private final int bufferSize; private int tcpBufferSize; private final String user; private final PrivateKey key; private final X509Certificate[] certChain; public RemoteGsiftpTransferProtocolInfo(String protocol, int major, int minor, InetSocketAddress addr, String gsiftpUrl, String gsiftpTranferManagerName, String gsiftpTranferManagerDomain, int bufferSize, int tcpBufferSize, X509Credential credential) { this(protocol, major, minor, addr, gsiftpUrl, gsiftpTranferManagerName, gsiftpTranferManagerDomain, bufferSize, tcpBufferSize, credential, null); } public RemoteGsiftpTransferProtocolInfo(String protocol, int major, int minor, InetSocketAddress addr, String gsiftpUrl, String gsiftpTranferManagerName, String gsiftpTranferManagerDomain, int bufferSize, int tcpBufferSize, X509Credential credential, String user) { this(protocol, major, minor, addr, gsiftpUrl, gsiftpTranferManagerName, gsiftpTranferManagerDomain, bufferSize, tcpBufferSize, credential.getKey(), credential.getCertificateChain(), user); } public RemoteGsiftpTransferProtocolInfo(String protocol, int major, int minor, InetSocketAddress addr, String gsiftpUrl, String gsiftpTranferManagerName, String gsiftpTranferManagerDomain, int bufferSize, int tcpBufferSize, PrivateKey key, X509Certificate[] certChain, String user) { this.name = protocol; this.minor = minor; this.major = major; this.addr = addr; this.gsiftpUrl = gsiftpUrl; this.gsiftpTranferManagerName = gsiftpTranferManagerName; this.gsiftpTranferManagerDomain = gsiftpTranferManagerDomain; this.bufferSize = bufferSize; this.tcpBufferSize = tcpBufferSize; this.user = user; this.key = key; this.certChain = certChain; } public String getGsiftpUrl() { return gsiftpUrl; } public int getBufferSize() { return bufferSize; } // // the ProtocolInfo interface // @Override public String getProtocol() { return name ; } @Override public int getMinorVersion() { return minor ; } @Override public int getMajorVersion() { return major ; } @Override public String getVersionString() { return name + '-' + major + '.' + minor ; } public String toString() { String sb = getVersionString() + ' ' + addr.getAddress().getHostAddress() + ':' + addr.getPort(); return sb; } public boolean isFileCheckRequired() { return true; } /** Getter for property gsiftpTranferManagerName. * @return Value of property gsiftpTranferManagerName. */ public String getGsiftpTranferManagerName() { return gsiftpTranferManagerName; } /** Getter for property gsiftpTranferManagerDomain. * @return Value of property gsiftpTranferManagerDomain. */ public String getGsiftpTranferManagerDomain() { return gsiftpTranferManagerDomain; } /** Getter for property emode. * @return Value of property emode. */ public boolean isEmode() { return emode; } /** Setter for property emode. * @param emode New value of property emode. */ public void setEmode(boolean emode) { this.emode = emode; } /** Getter for property streams_num. * @return Value of property streams_num. */ public int getNumberOfStreams() { return streams_num; } /** Setter for property streams_num. * @param streams_num New value of property streams_num. */ public void setNumberOfStreams(int streams_num) { this.streams_num = streams_num; } /** Getter for property tcpBufferSize. * @return Value of property tcpBufferSize. */ public int getTcpBufferSize() { return tcpBufferSize; } /** Setter for property tcpBufferSize. * @param tcpBufferSize New value of property tcpBufferSize. */ public void setTcpBufferSize(int tcpBufferSize) { this.tcpBufferSize = tcpBufferSize; } public String getUser() { return user; } @Override public InetSocketAddress getSocketAddress() { return addr; } public X509Credential getCredential() throws KeyStoreException { return new KeyAndCertCredential(key, certChain); } }