package io.craft.atom.protocol.http.model; import static io.craft.atom.protocol.http.HttpConstants.S_CR; import static io.craft.atom.protocol.http.HttpConstants.S_LF; import static io.craft.atom.protocol.http.HttpConstants.S_SP; import lombok.Getter; import lombok.Setter; import lombok.ToString; /** * The first line of a Response message is the Status-Line, consisting * of the protocol version followed by a numeric status code and its * associated textual phrase, with each element separated by SP * characters. No CR or LF is allowed except in the final CRLF sequence. * <pre> * Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF * </pre> * * @author mindwind * @version 1.0, Feb 1, 2013 * @see HttpResponse */ @ToString(callSuper = true, of = "status") public class HttpStatusLine extends HttpStartLine { private static final long serialVersionUID = -3219302257563696666L; @Getter @Setter private HttpStatus status; // ~ ------------------------------------------------------------------------------------------------------------ public HttpStatusLine() { super(); } public HttpStatusLine(HttpVersion version, HttpStatus status) { super(version); this.status = status; } public String toHttpString() { StringBuilder sb = new StringBuilder(); sb.append(getVersion().getValue()).append(S_SP).append(getStatus().getStatusCode()).append(S_SP).append(getStatus().getReasonPhrase()).append(S_CR).append(S_LF); return sb.toString(); } }