Build 1.0_r1(from source)

org.apache.http.conn.routing
Class HttpRoute

java.lang.Object
  extended by org.apache.http.conn.routing.HttpRoute
All Implemented Interfaces:
Cloneable, RouteInfo

public final class HttpRoute
extends Object
implements RouteInfo, Cloneable

The route for a request. Instances of this class are unmodifiable and therefore suitable for use as lookup keys.

Since:
4.0

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.http.conn.routing.RouteInfo
RouteInfo.LayerType, RouteInfo.TunnelType
 
Constructor Summary
HttpRoute(HttpHost target)
          Creates a new direct insecure route.
HttpRoute(HttpHost target, InetAddress local, boolean secure)
          Creates a new direct route.
HttpRoute(HttpHost target, InetAddress local, HttpHost[] proxies, boolean secure, RouteInfo.TunnelType tunnelled, RouteInfo.LayerType layered)
          Creates a new route with all attributes specified explicitly.
HttpRoute(HttpHost target, InetAddress local, HttpHost proxy, boolean secure)
          Creates a new route through a proxy.
HttpRoute(HttpHost target, InetAddress local, HttpHost proxy, boolean secure, RouteInfo.TunnelType tunnelled, RouteInfo.LayerType layered)
          Creates a new route with at most one proxy.
 
Method Summary
 Object clone()
          Returns a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
 boolean equals(Object o)
          Compares this route to another.
 int getHopCount()
          Obtains the number of hops in this route.
 HttpHost getHopTarget(int hop)
          Obtains the target of a hop in this route.
 RouteInfo.LayerType getLayerType()
          Obtains the layering type of this route.
 InetAddress getLocalAddress()
          Obtains the local address to connect from.
 HttpHost getProxyHost()
          Obtains the first proxy host.
 HttpHost getTargetHost()
          Obtains the target host.
 RouteInfo.TunnelType getTunnelType()
          Obtains the tunnel type of this route.
 int hashCode()
          Generates a hash code for this route.
 boolean isLayered()
          Checks whether this route includes a layered protocol.
 boolean isSecure()
          Checks whether this route is secure.
 boolean isTunnelled()
          Checks whether this route is tunnelled through a proxy.
 String toString()
          Obtains a description of this route.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HttpRoute

public HttpRoute(HttpHost target,
                 InetAddress local,
                 HttpHost[] proxies,
                 boolean secure,
                 RouteInfo.TunnelType tunnelled,
                 RouteInfo.LayerType layered)
Creates a new route with all attributes specified explicitly.

Parameters:
target - the host to which to route
local - the local address to route from, or null for the default
proxies - the proxy chain to use, or null for a direct route
secure - true if the route is (to be) secure, false otherwise
tunnelled - the tunnel type of this route
layered - the layering type of this route

HttpRoute

public HttpRoute(HttpHost target,
                 InetAddress local,
                 HttpHost proxy,
                 boolean secure,
                 RouteInfo.TunnelType tunnelled,
                 RouteInfo.LayerType layered)
Creates a new route with at most one proxy.

Parameters:
target - the host to which to route
local - the local address to route from, or null for the default
proxy - the proxy to use, or null for a direct route
secure - true if the route is (to be) secure, false otherwise
tunnelled - true if the route is (to be) tunnelled via the proxy, false otherwise
layered - true if the route includes a layered protocol, false otherwise

HttpRoute

public HttpRoute(HttpHost target,
                 InetAddress local,
                 boolean secure)
Creates a new direct route. That is a route without a proxy.

Parameters:
target - the host to which to route
local - the local address to route from, or null for the default
secure - true if the route is (to be) secure, false otherwise

HttpRoute

public HttpRoute(HttpHost target)
Creates a new direct insecure route.

Parameters:
target - the host to which to route

HttpRoute

public HttpRoute(HttpHost target,
                 InetAddress local,
                 HttpHost proxy,
                 boolean secure)
Creates a new route through a proxy. When using this constructor, the proxy MUST be given. For convenience, it is assumed that a secure connection will be layered over a tunnel through the proxy.

Parameters:
target - the host to which to route
local - the local address to route from, or null for the default
proxy - the proxy to use
secure - true if the route is (to be) secure, false otherwise
Method Detail

getTargetHost

public final HttpHost getTargetHost()
Description copied from interface: RouteInfo
Obtains the target host.

Specified by:
getTargetHost in interface RouteInfo
Returns:
the target host

getLocalAddress

public final InetAddress getLocalAddress()
Description copied from interface: RouteInfo
Obtains the local address to connect from.

Specified by:
getLocalAddress in interface RouteInfo
Returns:
the local address, or null

getHopCount

public final int getHopCount()
Description copied from interface: RouteInfo
Obtains the number of hops in this route. A direct route has one hop. A route through a proxy has two hops. A route through a chain of n proxies has n+1 hops.

Specified by:
getHopCount in interface RouteInfo
Returns:
the number of hops in this route

getHopTarget

public final HttpHost getHopTarget(int hop)
Description copied from interface: RouteInfo
Obtains the target of a hop in this route. The target of the last hop is the target host, the target of previous hops is the respective proxy in the chain. For a route through exactly one proxy, target of hop 0 is the proxy and target of hop 1 is the target host.

Specified by:
getHopTarget in interface RouteInfo
Parameters:
hop - index of the hop for which to get the target, 0 for first
Returns:
the target of the given hop

getProxyHost

public final HttpHost getProxyHost()
Description copied from interface: RouteInfo
Obtains the first proxy host.

Specified by:
getProxyHost in interface RouteInfo
Returns:
the first proxy in the proxy chain, or null if this route is direct

getTunnelType

public final RouteInfo.TunnelType getTunnelType()
Description copied from interface: RouteInfo
Obtains the tunnel type of this route. If there is a proxy chain, only end-to-end tunnels are considered.

Specified by:
getTunnelType in interface RouteInfo
Returns:
the tunnelling type

isTunnelled

public final boolean isTunnelled()
Description copied from interface: RouteInfo
Checks whether this route is tunnelled through a proxy. If there is a proxy chain, only end-to-end tunnels are considered.

Specified by:
isTunnelled in interface RouteInfo
Returns:
true if tunnelled end-to-end through at least one proxy, false otherwise

getLayerType

public final RouteInfo.LayerType getLayerType()
Description copied from interface: RouteInfo
Obtains the layering type of this route. In the presence of proxies, only layering over an end-to-end tunnel is considered.

Specified by:
getLayerType in interface RouteInfo
Returns:
the layering type

isLayered

public final boolean isLayered()
Description copied from interface: RouteInfo
Checks whether this route includes a layered protocol. In the presence of proxies, only layering over an end-to-end tunnel is considered.

Specified by:
isLayered in interface RouteInfo
Returns:
true if layered, false otherwise

isSecure

public final boolean isSecure()
Description copied from interface: RouteInfo
Checks whether this route is secure.

Specified by:
isSecure in interface RouteInfo
Returns:
true if secure, false otherwise

equals

public final boolean equals(Object o)
Compares this route to another.

Overrides:
equals in class Object
Parameters:
o - the object to compare with
Returns:
true if the argument is the same route, false
See Also:
Object.hashCode()

hashCode

public final int hashCode()
Generates a hash code for this route.

Overrides:
hashCode in class Object
Returns:
the hash code
See Also:
Object.equals(java.lang.Object)

toString

public final String toString()
Obtains a description of this route.

Overrides:
toString in class Object
Returns:
a human-readable representation of this route

clone

public Object clone()
             throws CloneNotSupportedException
Description copied from class: Object
Returns a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.

Classes which wish to support cloning must specify that they implement the Cloneable interface, since the implementation checks for this.

Overrides:
clone in class Object
Returns:
Object a shallow copy of this object.
Throws:
CloneNotSupportedException - if the receiver's class does not implement the interface Cloneable.

Build 1.0_r1(from source)

Please submit a feedback, bug or feature