package com.taobao.yugong.common.model.position; /** * 增量日志文件的标示 * * @author agapple 2012-6-14 下午09:20:07 */ public class LogPosition extends Position { private static final long serialVersionUID = 81432665066427482L; private String journalName; private Long position; private Long timestamp; public LogPosition(String journalName, Long position, Long timestamp){ this.journalName = journalName; this.position = position; this.timestamp = timestamp; } public LogPosition(String journalName, Long position){ this.journalName = journalName; this.position = position; } public LogPosition(Long timestamp){ this.timestamp = timestamp; } public String getJournalName() { return journalName; } public void setJournalName(String journalName) { this.journalName = journalName; } public Long getPosition() { return position; } public void setPosition(Long position) { this.position = position; } public Long getTimestamp() { return timestamp; } public void setTimestamp(Long timestamp) { this.timestamp = timestamp; } public LogPosition clone() { return new LogPosition(journalName, position, timestamp); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((journalName == null) ? 0 : journalName.hashCode()); result = prime * result + ((position == null) ? 0 : position.hashCode()); result = prime * result + ((timestamp == null) ? 0 : timestamp.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; LogPosition other = (LogPosition) obj; if (journalName == null) { if (other.journalName != null) return false; } else if (!journalName.equals(other.journalName)) return false; if (position == null) { if (other.position != null) return false; } else if (!position.equals(other.position)) return false; if (timestamp == null) { if (other.timestamp != null) return false; } else if (!timestamp.equals(other.timestamp)) return false; return true; } }