package com.after_sunrise.oss.otdb.je.entity;
import static org.apache.commons.lang.builder.ToStringStyle.SHORT_PREFIX_STYLE;
import java.io.Serializable;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @author takanori.takase
*/
public class TickKey implements Serializable, Comparable<TickKey> {
private static final long serialVersionUID = -1158832424312702205L;
private final long codeId;
private final long timestamp;
private final long sequence;
public TickKey(long codeId, long timestamp, long sequence) {
this.codeId = codeId;
this.timestamp = timestamp;
this.sequence = sequence;
}
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this, SHORT_PREFIX_STYLE);
builder.append("codeId", codeId);
builder.append("timestamp", timestamp);
builder.append("sequence", sequence);
return builder.toString();
}
@Override
public int hashCode() {
HashCodeBuilder builder = new HashCodeBuilder();
builder.append(codeId);
builder.append(timestamp);
builder.append(sequence);
return builder.toHashCode();
}
@Override
public boolean equals(Object o) {
return o instanceof TickKey && compareTo((TickKey) o) == 0;
}
@Override
public int compareTo(TickKey o) {
int comparison = Long.compare(codeId, o.getCodeId());
if (comparison != 0) {
return comparison;
}
comparison = Long.compare(timestamp, o.getTimestamp());
if (comparison != 0) {
return comparison;
}
return Long.compare(sequence, o.getSequence());
}
public long getCodeId() {
return codeId;
}
public long getTimestamp() {
return timestamp;
}
public long getSequence() {
return sequence;
}
}