ClientRequest.java 2.1 KB
Newer Older
1 2 3 4 5 6
package com.netflix.niws.client;

import java.net.URI;

public class ClientRequest implements Cloneable {

A
Allen Wang 已提交
7 8 9 10
    protected URI uri;
    protected Object loadBalancerKey = null;
    protected Boolean isRetriable = null;
    protected NiwsClientConfig overrideConfig;
11 12 13 14 15 16 17 18
        
    public ClientRequest() {
    }
    
    public ClientRequest(URI uri) {
        this.uri = uri;
    }

A
Allen Wang 已提交
19 20 21 22 23 24 25
    public ClientRequest(URI uri, Object loadBalancerKey, boolean isRetriable, NiwsClientConfig overrideConfig) {
        this.uri = uri;
        this.loadBalancerKey = loadBalancerKey;
        this.isRetriable = isRetriable;
        this.overrideConfig = overrideConfig;
    }

26 27 28 29 30 31 32 33 34 35 36 37
    public ClientRequest(ClientRequest request) {
        this.uri = request.uri;
        this.loadBalancerKey = request.loadBalancerKey;
        this.overrideConfig = request.overrideConfig;
        this.isRetriable = request.isRetriable;
    }

    public final URI getUri() {
        return uri;
    }
    

A
Allen Wang 已提交
38
    protected final ClientRequest setUri(URI uri) {
39 40 41 42 43 44 45 46
        this.uri = uri;
        return this;
    }

    public final Object getLoadBalancerKey() {
        return loadBalancerKey;
    }

A
Allen Wang 已提交
47
    protected final ClientRequest setLoadBalancerKey(Object loadBalancerKey) {
48 49 50 51
        this.loadBalancerKey = loadBalancerKey;
        return this;
    }

A
Allen Wang 已提交
52
    public boolean isRetriable() {
A
Allen Wang 已提交
53
        return (Boolean.TRUE.equals(isRetriable));
54 55
    }

A
Allen Wang 已提交
56
    protected final ClientRequest setRetriable(boolean isRetriable) {
57 58 59 60 61 62 63 64
        this.isRetriable = isRetriable;
        return this;
    }

    public final NiwsClientConfig getOverrideConfig() {
        return overrideConfig;
    }

A
Allen Wang 已提交
65
    protected final ClientRequest setOverrideConfig(NiwsClientConfig overrideConfig) {
66 67 68 69
        this.overrideConfig = overrideConfig;
        return this;
    }
    
A
Allen Wang 已提交
70
    public ClientRequest replaceUri(URI newURI) {
71 72 73 74 75 76 77 78 79 80
        ClientRequest req;
        try {
            req = (ClientRequest) this.clone();
        } catch (CloneNotSupportedException e) {
            req = new ClientRequest(this);
        }
        req.uri = newURI;
        return req;
    }
}