All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.higgs.http.client.Response Maven / Gradle / Ivy

package io.higgs.http.client;

import io.higgs.http.client.future.Reader;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.HttpVersion;

/**
 * @author Courtney Robinson 
 */
public class Response {
    private boolean chunked;
    private HttpVersion protocolVersion;
    private HttpResponseStatus status;
    private HttpHeaders headers;
    private boolean completed;

    protected Reader reader;
    protected final Request request;

    public Response(Request request, Reader reader) {
        this.reader = reader;
        this.request = request;
        reader.response(this);
    }

    public void setChunked(boolean chunked) {
        this.chunked = chunked;
    }

    public boolean isChunked() {
        return chunked;
    }

    public void setProtocolVersion(HttpVersion protocolVersion) {
        this.protocolVersion = protocolVersion;
    }

    public HttpVersion getProtocolVersion() {
        return protocolVersion;
    }

    public void setStatus(HttpResponseStatus status) {
        this.status = status;
    }

    public HttpResponseStatus getStatus() {
        return status;
    }

    public void setHeaders(HttpHeaders headers) {
        this.headers = headers;
    }

    public HttpHeaders getHeaders() {
        return headers;
    }

    public void write(ByteBuf content) {
        if (content != null) {
            reader.data(content);
        }
    }

    public void setCompleted(boolean completed) {
        this.completed = completed;
        reader.setCompleted(completed);
    }

    public boolean isCompleted() {
        return completed;
    }

    @Override
    public String toString() {
        return "Response{" +
                "chunked=" + chunked +
                ", protocolVersion=" + protocolVersion +
                ", status=" + status +
                ", headers=" + headers +
                ", completed=" + completed +
                ", reader=" + reader +
                ", \nrequest=" + request +
                '}';
    }

    /**
     * @return The request which generated this response
     */
    public Request request() {
        return request;
    }

    /**
     * @return true if this response is the result of following a redirect
     */
    public boolean isRedirected() {
        return request.originalUri() != null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy