org.apache.http.conn
Class HttpRoute

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

public final class HttpRoute
extends java.lang.Object
implements java.lang.Cloneable

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

Since:
4.0
Version:
$Revision: 558079 $
Author:
Roland Weber

Constructor Summary
HttpRoute(org.apache.http.HttpHost target)
          Creates a new direct insecure route.
HttpRoute(org.apache.http.HttpHost target, java.net.InetAddress local, boolean secure)
          Creates a new direct route.
HttpRoute(org.apache.http.HttpHost target, java.net.InetAddress local, org.apache.http.HttpHost[] proxies, boolean secure, boolean tunnelled, boolean layered)
          Creates a new route with all attributes specified explicitly.
HttpRoute(org.apache.http.HttpHost target, java.net.InetAddress local, org.apache.http.HttpHost proxy, boolean secure)
          Creates a new route through a proxy.
HttpRoute(org.apache.http.HttpHost target, java.net.InetAddress local, org.apache.http.HttpHost proxy, boolean secure, boolean tunnelled, boolean layered)
          Creates a new route with at most one proxy.
 
Method Summary
 java.lang.Object clone()
           
 boolean equals(java.lang.Object o)
          Compares this route to another.
 int getHopCount()
          Obtains the number of hops in this route.
 org.apache.http.HttpHost getHopTarget(int hop)
          Obtains the target of a hop in this route.
 java.net.InetAddress getLocalAddress()
          Obtains the local address to connect from.
 org.apache.http.HttpHost getProxyHost()
          Obtains the first proxy host.
 org.apache.http.HttpHost getTargetHost()
          Obtains the target host.
 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.
 java.lang.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(org.apache.http.HttpHost target,
                 java.net.InetAddress local,
                 org.apache.http.HttpHost[] proxies,
                 boolean secure,
                 boolean tunnelled,
                 boolean 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 - true if the route is (to be) tunnelled end-to-end via the proxy chain, false otherwise
layered - true if the route includes a layered protocol, false otherwise

HttpRoute

public HttpRoute(org.apache.http.HttpHost target,
                 java.net.InetAddress local,
                 org.apache.http.HttpHost proxy,
                 boolean secure,
                 boolean tunnelled,
                 boolean 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(org.apache.http.HttpHost target,
                 java.net.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(org.apache.http.HttpHost target)
Creates a new direct insecure route.

Parameters:
target - the host to which to route

HttpRoute

public HttpRoute(org.apache.http.HttpHost target,
                 java.net.InetAddress local,
                 org.apache.http.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 org.apache.http.HttpHost getTargetHost()
Obtains the target host.

Returns:
the target host

getLocalAddress

public final java.net.InetAddress getLocalAddress()
Obtains the local address to connect from.

Returns:
the local address, or null

getHopCount

public final int getHopCount()
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.

Returns:
the number of hops in this route

getHopTarget

public final org.apache.http.HttpHost getHopTarget(int hop)
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.

Parameters:
hop - index of the hop for which to get the target, 0 for first
Returns:
the target of the given hop
Throws:
java.lang.IllegalArgumentException - if the argument is negative or not less than getHopCount()

getProxyHost

public final org.apache.http.HttpHost getProxyHost()
Obtains the first proxy host.

Returns:
the first proxy in the proxy chain, or null if this route is direct

isTunnelled

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

Returns:
true if tunnelled end-to-end through at least one proxy, false otherwise

isLayered

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

Returns:
true if layered, false otherwise

isSecure

public final boolean isSecure()
Checks whether this route is secure.

Returns:
true if secure, false otherwise

equals

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

Overrides:
equals in class java.lang.Object
Parameters:
o - the object to compare with
Returns:
true if the argument is the same route, false

hashCode

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

Overrides:
hashCode in class java.lang.Object
Returns:
the hash code

toString

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

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

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException


Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.