FileDocCategorySizeDatePackage
Proxy.javaAPI DocJava SE 6 API4272Tue Jun 10 00:25:42 BST 2008java.net

Proxy

public class Proxy extends Object
This class represents a proxy setting, typically a type (http, socks) and a socket address. A Proxy is an immutable object.
version
1.3, 08/09/03
see
java.net.ProxySelector
author
Yingxian Wang
author
Jean-Christophe Collet
since
1.5

Fields Summary
private Type
type
Represents a SOCKS (V4 or V5) proxy.
private SocketAddress
sa
public static final Proxy
NO_PROXY
A proxy setting that represents a DIRECT connection, basically telling the protocol handler not to use any proxying. Used, for instance, to create sockets bypassing any other global proxy settings (like SOCKS):

Socket s = new Socket(Proxy.NO_PROXY);

Constructors Summary
private Proxy()


    // Creates the proxy that represents a <code>DIRECT</code> connection.
      
	type = type.DIRECT;
	sa = null;
    
public Proxy(Type type, SocketAddress sa)
Creates an entry representing a PROXY connection. Certain combinations are illegal. For instance, for types Http, and Socks, a SocketAddress must be provided.

Use the Proxy.NO_PROXY constant for representing a direct connection.

param
type the Type of the proxy
param
sa the SocketAddress for that proxy
throws
IllegalArgumentException when the type and the address are incompatible

	if ((type == Type.DIRECT) || !(sa instanceof InetSocketAddress))
	    throw new IllegalArgumentException("type " + type + " is not compatible with address " + sa);
	this.type = type;
	this.sa = sa;
    
Methods Summary
public java.net.SocketAddressaddress()
Returns the socket address of the proxy, or null if its a direct connection.

return
a SocketAddress representing the socket end point of the proxy

	return sa;
    
public final booleanequals(java.lang.Object obj)
Compares this object against the specified object. The result is true if and only if the argument is not null and it represents the same proxy as this object.

Two instances of Proxy represent the same address if both the SocketAddresses and type are equal.

param
obj the object to compare against.
return
true if the objects are the same; false otherwise.
see
java.net.InetSocketAddress#equals(java.lang.Object)

	if (obj == null || !(obj instanceof Proxy))
	    return false;
	Proxy p = (Proxy) obj;
	if (p.type() == type()) {
	    if (address() == null) {
		return (p.address() == null);
	    } else
		return address().equals(p.address());
	}
	return false;
    
public final inthashCode()
Returns a hashcode for this Proxy.

return
a hash code value for this Proxy.

	if (address() == null)
	    return type().hashCode();
	return type().hashCode() + address().hashCode();
    
public java.lang.StringtoString()
Constructs a string representation of this Proxy. This String is constructed by calling toString() on its type and concatenating " @ " and the toString() result from its address if its type is not DIRECT.

return
a string representation of this object.

	if (type() == Type.DIRECT)
	    return "DIRECT";
	return type() + " @ " + address();
    
public java.net.Proxy$Typetype()
Returns the proxy type.

return
a Type representing the proxy type

	return type;