ClientRequest.java 2.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
package com.netflix.niws.client;

import java.net.URI;

public class ClientRequest implements Cloneable {

    private URI uri;
    private Object loadBalancerKey = null;
    private boolean isRetriable = false;
    private NiwsClientConfig overrideConfig;
        
    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 52 53 54 55
        this.loadBalancerKey = loadBalancerKey;
        return this;
    }

    public final boolean isRetriable() {
        return isRetriable;
    }

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;
    }
}