package org.webpieces.httpparser.api.dto; public class HttpVersion { private int major = 1; private int minor = 1; /** * Set the http version such as 1.1 or 1.2. It must * be {integer}.{integer} format per the RFC. * @param version */ public void setVersion(String version) { int index = version.indexOf("."); if(index < 0) throw new IllegalStateException("Missing the '.' in the version number. ie. 1.1."); String first = version.substring(0, index); String last = version.substring(index+1); major = convertToInteger(first); minor = convertToInteger(last); } private int convertToInteger(String first) { try { return Integer.valueOf(first); } catch(NumberFormatException e) { throw new IllegalArgumentException("Must be of format {integer}.{integer} but wasn't", e); } } public int getMajor() { return major; } public int getMinor() { return minor; } public String getVersion() { return major + "." + minor; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + major; result = prime * result + minor; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; HttpVersion other = (HttpVersion) obj; if (major != other.major) return false; return minor == other.minor; } @Override public String toString() { return "HTTP/" + major + "." + minor; } }