package com.grendelscan.commons.http.apache_overrides.serializable; import java.io.Serializable; import org.apache.http.ProtocolVersion; import org.apache.http.StatusLine; import org.apache.http.message.BasicLineFormatter; public class SerializableStatusLine implements Serializable, StatusLine, Cloneable { /** * */ private static final long serialVersionUID = -4052124223049114377L; /** The protocol version. */ private final ProtocolVersion protoVersion; /** The reason phrase. */ private final String reasonPhrase; /** The status code. */ private final int statusCode; public SerializableStatusLine() { this(null, 0, null); } public SerializableStatusLine(final ProtocolVersion version, final int statusCode, final String reasonPhrase) { if (version == null) { throw new IllegalArgumentException("Protocol version may not be null."); } if (statusCode < 0) { throw new IllegalArgumentException("Status code may not be negative."); } protoVersion = version; this.statusCode = statusCode; this.reasonPhrase = reasonPhrase; } public SerializableStatusLine(final StatusLine statusLine) { this(statusLine.getProtocolVersion(), statusLine.getStatusCode(), statusLine.getReasonPhrase()); } // --------------------------------------------------------- Public Methods @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } /** * @return the HTTP-Version */ @Override public ProtocolVersion getProtocolVersion() { return protoVersion; } /** * @return the Reason-Phrase */ @Override public String getReasonPhrase() { return reasonPhrase; } /** * @return the Status-Code */ @Override public int getStatusCode() { return statusCode; } @Override public String toString() { // no need for non-default formatting in toString() return BasicLineFormatter.DEFAULT.formatStatusLine(null, this).toString(); } }