package diskCacheV111.vehicles;
import com.google.common.collect.ImmutableMap;
import java.net.InetSocketAddress;
import java.net.URI;
import org.dcache.auth.OpenIdCredential;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* @author Patrick F.
* @author Timur Perelmutov. timur@fnal.gov
* @version 0.0, 28 Jun 2002
*/
public class RemoteHttpDataTransferProtocolInfo implements IpProtocolInfo
{
private final String name;
private final int minor;
private final int major;
private final InetSocketAddress addr;
private final String sourceHttpUrl;
private final boolean isVerificationRequired;
private final ImmutableMap<String,String> headers;
private final OpenIdCredential openIdCredential;
private static final long serialVersionUID = 4482469147378465931L;
public RemoteHttpDataTransferProtocolInfo(String protocol, int major,
int minor, InetSocketAddress addr, String url,
boolean isVerificationRequired, ImmutableMap<String,String> headers)
{
this(protocol, minor, major, addr, url, isVerificationRequired, headers, null);
}
public RemoteHttpDataTransferProtocolInfo(String protocol, int major,
int minor, InetSocketAddress addr, String url,
boolean isVerificationRequired, ImmutableMap<String,String> headers,
OpenIdCredential openIdCredential)
{
this.name = protocol ;
this.minor = minor ;
this.major = major ;
this.addr = addr ;
this.sourceHttpUrl = url;
this.isVerificationRequired = isVerificationRequired;
this.headers = checkNotNull(headers);
this.openIdCredential = openIdCredential;
}
public URI getUri()
{
return URI.create(sourceHttpUrl);
}
@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 boolean isVerificationRequired()
{
return isVerificationRequired;
}
public ImmutableMap<String,String> getHeaders()
{
return headers;
}
@Override
public String toString()
{
return getVersionString() + ':' + sourceHttpUrl;
}
@Override
public InetSocketAddress getSocketAddress()
{
return addr;
}
public OpenIdCredential getTokenCredential()
{
return openIdCredential;
}
public boolean hasTokenCredential()
{
return openIdCredential != null;
}
}