com.netflix.client
Class ClientRequest

java.lang.Object
  extended by com.netflix.client.ClientRequest
All Implemented Interfaces:
java.lang.Cloneable

public class ClientRequest
extends java.lang.Object
implements java.lang.Cloneable

An object that represents a common client request that is suitable for all communication protocol. It is expected that this object is immutable.


Field Summary
protected  java.lang.Boolean isRetriable
           
protected  java.lang.Object loadBalancerKey
           
protected  IClientConfig overrideConfig
           
protected  java.net.URI uri
           
 
Constructor Summary
ClientRequest()
           
ClientRequest(ClientRequest request)
           
ClientRequest(java.net.URI uri)
           
ClientRequest(java.net.URI uri, java.lang.Object loadBalancerKey, boolean isRetriable, IClientConfig overrideConfig)
          Constructor to set all fields.
 
Method Summary
 java.lang.Object getLoadBalancerKey()
           
 IClientConfig getOverrideConfig()
           
 java.net.URI getUri()
           
 boolean isRetriable()
           
 ClientRequest replaceUri(java.net.URI newURI)
          Create a client request using a new URI.
protected  ClientRequest setLoadBalancerKey(java.lang.Object loadBalancerKey)
           
protected  ClientRequest setOverrideConfig(IClientConfig overrideConfig)
           
protected  ClientRequest setRetriable(boolean isRetriable)
           
protected  ClientRequest setUri(java.net.URI uri)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

uri

protected java.net.URI uri

loadBalancerKey

protected java.lang.Object loadBalancerKey

isRetriable

protected java.lang.Boolean isRetriable

overrideConfig

protected IClientConfig overrideConfig
Constructor Detail

ClientRequest

public ClientRequest()

ClientRequest

public ClientRequest(java.net.URI uri)

ClientRequest

public ClientRequest(java.net.URI uri,
                     java.lang.Object loadBalancerKey,
                     boolean isRetriable,
                     IClientConfig overrideConfig)
Constructor to set all fields.

Parameters:
uri - URI to set
loadBalancerKey - the object that is used by ILoadBalancer.chooseServer(Object), can be null
isRetriable - if the operation is retriable on failures
overrideConfig - client configuration that is used for this specific request. can be null.

ClientRequest

public ClientRequest(ClientRequest request)
Method Detail

getUri

public final java.net.URI getUri()

setUri

protected final ClientRequest setUri(java.net.URI uri)

getLoadBalancerKey

public final java.lang.Object getLoadBalancerKey()

setLoadBalancerKey

protected final ClientRequest setLoadBalancerKey(java.lang.Object loadBalancerKey)

isRetriable

public boolean isRetriable()

setRetriable

protected final ClientRequest setRetriable(boolean isRetriable)

getOverrideConfig

public final IClientConfig getOverrideConfig()

setOverrideConfig

protected final ClientRequest setOverrideConfig(IClientConfig overrideConfig)

replaceUri

public ClientRequest replaceUri(java.net.URI newURI)
Create a client request using a new URI. This is used by AbstractLoadBalancerAwareClient.computeFinalUriWithLoadBalancer(ClientRequest). It first tries to clone the request and if that fails it will use the copy constructor ClientRequest(ClientRequest). Sub classes are recommended to override this method to provide more efficient implementation.

Parameters:
newURI -
Returns: