package com.grendelscan.commons.http.apache_overrides.serializable;
import java.io.Serializable;
import org.apache.http.ProtocolVersion;
import org.apache.http.RequestLine;
import org.apache.http.message.BasicLineFormatter;
public class SerializableRequestLine implements RequestLine, Cloneable, Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private String method;
private ProtocolVersion protoversion;
private String uri;
private SerializableRequestLine()
{
}
public SerializableRequestLine(final RequestLine requestline)
{
this(requestline.getMethod(), requestline.getUri(), requestline.getProtocolVersion());
}
public SerializableRequestLine(final String method, final String uri, final ProtocolVersion version)
{
if (method == null)
{
throw new IllegalArgumentException("Method must not be null.");
}
if (uri == null)
{
throw new IllegalArgumentException("URI must not be null.");
}
if (version == null)
{
throw new IllegalArgumentException("Protocol version must not be null.");
}
this.method = method;
this.uri = uri;
protoversion = version;
}
@Override
public SerializableRequestLine clone()
{
SerializableRequestLine clone = new SerializableRequestLine();
clone.method = method;
clone.uri = uri;
clone.protoversion = protoversion; // ProtocolVersion is immutable
return clone;
}
@Override
public String getMethod()
{
return method;
}
@Override
public ProtocolVersion getProtocolVersion()
{
return protoversion;
}
@Override
public String getUri()
{
return uri;
}
@Override
public String toString()
{
// no need for non-default formatting in toString()
return BasicLineFormatter.DEFAULT.formatRequestLine(null, this).toString();
}
}