package net.sf.jacclog.api.domain.http;
/**
* Represents an immutable unknown (probably non-standardized) Hypertext Transfer Protocol request header.
*
* @author André Rouél
*/
public class UnknownHttpRequestHeader implements ReadableHttpRequestHeader {
/**
* The name of the unknown HTTP request header
*/
private final String name;
/**
* Constructs an unknown HTTP request header.
*
* @param name
* the name of the unknown request header
* @throws IllegalArgumentException
* if the given argument is <code>null</code>
*/
public UnknownHttpRequestHeader(final String name) {
if (name == null) {
throw new IllegalArgumentException("Argument 'name' can not be null.");
}
this.name = name;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final UnknownHttpRequestHeader other = (UnknownHttpRequestHeader) obj;
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
return true;
}
/**
* Gets the name of the unknown (probably non-standardized) request header which is never <code>null</code>.
*
* @return the name of the request header
*/
@Override
public String getName() {
return name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
builder.append("UnknownHttpRequestHeader [name=");
builder.append(name);
builder.append("]");
return builder.toString();
}
}