package hip.util;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableUtils;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
/**
*/
public class CommonLogEntry implements Writable {
private String remoteAddress;
private String remoteLogname;
private String userId;
private String time;
private String requestLine;
private Long statusCode;
private Long objSize;
private String method;
private String resource;
private String protocol;
private Long epoch;
@Override
public void write(DataOutput out) throws IOException {
WritableUtils.writeString(out, remoteAddress);
WritableUtils.writeString(out, remoteLogname);
WritableUtils.writeString(out, userId);
WritableUtils.writeString(out, time);
WritableUtils.writeString(out, requestLine);
writeLong(out, statusCode);
writeLong(out, objSize);
WritableUtils.writeString(out, method);
WritableUtils.writeString(out, resource);
WritableUtils.writeString(out, protocol);
writeLong(out, epoch);
}
@Override
public void readFields(DataInput in) throws IOException {
remoteAddress = WritableUtils.readString(in);
remoteLogname = WritableUtils.readString(in);
userId = WritableUtils.readString(in);
time = WritableUtils.readString(in);
requestLine = WritableUtils.readString(in);
statusCode = readLong(in);
objSize = readLong(in);
method = WritableUtils.readString(in);
resource = WritableUtils.readString(in);
protocol = WritableUtils.readString(in);
epoch = readLong(in);
}
public static void writeLong(DataOutput out, Long l) throws IOException {
if (l != null) {
out.writeInt(1);
out.writeLong(l);
} else {
out.writeInt(-1);
}
}
public static Long readLong(DataInput in) throws IOException {
int length = in.readInt();
if (length == -1) return null;
return in.readLong();
}
public String getRemoteAddress() {
return remoteAddress;
}
public void setRemoteAddress(String remoteAddress) {
this.remoteAddress = remoteAddress;
}
public String getRemoteLogname() {
return remoteLogname;
}
public void setRemoteLogname(String remoteLogname) {
this.remoteLogname = remoteLogname;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getRequestLine() {
return requestLine;
}
public void setRequestLine(String requestLine) {
this.requestLine = requestLine;
}
public Long getStatusCode() {
return statusCode;
}
public void setStatusCode(Long statusCode) {
this.statusCode = statusCode;
}
public Long getObjSize() {
return objSize;
}
public void setObjSize(Long objSize) {
this.objSize = objSize;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getResource() {
return resource;
}
public void setResource(String resource) {
this.resource = resource;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public Long getEpoch() {
return epoch;
}
public void setEpoch(Long epoch) {
this.epoch = epoch;
}
}