package com.github.kristofa.test.http;
import org.apache.commons.lang3.Validate;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* Represents http message header entry.
*
* @author kristof
*/
public class HttpMessageHeader implements Comparable<HttpMessageHeader> {
private final String name;
private final String value;
/**
* Create a new header entry instance.
*
* @param name Header entry name. Should not be <code>null</code> or blank.
* @param value Header entry value. Should not be <code>null</code> or blank.
*/
public HttpMessageHeader(final String name, final String value) {
Validate.notBlank(name, "HttpHeader name is blank.");
Validate.notBlank(value, "HttpHeader value for name " + name + " is blank");
this.name = name;
this.value = value;
}
/**
* Get header entry name.
*
* @return Header entry name.
*/
public String getName() {
return name;
}
/**
* Get header entry value.
*
* @return Header entry value.
*/
public String getValue() {
return value;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, false);
}
/**
* {@inheritDoc}
*/
@Override
public boolean equals(final Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, false);
}
/**
* {@inheritDoc}
*/
@Override
public String toString() {
return getName() + ": " + getValue();
}
/**
* {@inheritDoc}
*/
@Override
public int compareTo(final HttpMessageHeader o) {
final int compareTo = getName().compareTo(o.getName());
if (compareTo != 0) {
return compareTo;
}
return getValue().compareTo(o.getValue());
}
}