package io.muoncore.protocol.requestresponse; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import io.muoncore.codec.Codecs; import java.lang.reflect.Type; public class Response { public final static String STATUS = "status"; @SerializedName("body") private byte[] payload; @Expose(deserialize = false) private transient Codecs codecs; private int status; @SerializedName("content_type") private String contentType; public Response(int status, byte[] payload, String contentType, Codecs codecs) { this.payload = payload; this.status = status; this.codecs = codecs; this.contentType = contentType; } public void setCodecs(Codecs codecs) { this.codecs = codecs; } public int getStatus() { return status; } public <X> X getPayload(Class<X> type) { return codecs.decode(payload, contentType, type) ; } public <X> X getPayload(Type type) { return codecs.decode(payload, contentType, type) ; } @Override public String toString() { return "Response{" + "status=" + status + '}'; } }