package com.after_sunrise.oss.otdb.je.entity; import static com.google.common.base.Preconditions.checkNotNull; import static org.apache.commons.lang.builder.ToStringStyle.SHORT_PREFIX_STYLE; import java.math.BigDecimal; import java.util.Map; import java.util.Objects; import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import com.after_sunrise.oss.otdb.api.tick.Tick; /** * @author takanori.takase */ public class TickImpl implements Tick { private static final long serialVersionUID = 3247800447871582698L; private final String code; private final TickEntry entry; public TickImpl(String code, TickEntry entry) { this.code = checkNotNull(code); this.entry = checkNotNull(entry); } public String toString() { ToStringBuilder builder = new ToStringBuilder(this, SHORT_PREFIX_STYLE); builder.append("code", code); builder.append("entry", entry); return builder.toString(); } @Override public int hashCode() { return Objects.hash(code, entry); } @Override public boolean equals(Object o) { return o instanceof Tick && compareTo((Tick) o) == 0; } @Override public int compareTo(Tick o) { CompareToBuilder builder = new CompareToBuilder(); builder.append(getCode(), o.getCode()); builder.append(getTimestamp(), o.getTimestamp()); builder.append(getSequence(), o.getSequence()); return builder.toComparison(); } @Override public String getCode() { return code; } @Override public long getTimestamp() { return entry.getKey().getTimestamp(); } @Override public long getSequence() { return entry.getKey().getSequence(); } @Override public Map<Integer, BigDecimal> getDecimals() { return entry.getValue().getDecimals(); } @Override public Map<Integer, String> getStrings() { return entry.getValue().getStrings(); } }