content: 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;
      }
  
  }
  