Tics.java

/*
 * Created on 2005/08/04
 * Copyright (C) 2005 Koga Laboratory. All rights reserved.
 *
 */
package org.mklab.tool.graph.gnuplot.decoration;

/**
 * 目盛りの刻み位置を表すクラスです。
 * 
 * @author koga
 * @version $Revision: 1.7 $, 2005/08/04
 */
public abstract class Tics implements GnuplotComponent {



  /** 始点 */
  private double start;
  /** 増分 */
  private double increase;
  /** 終点 */
  private double end;

  /**
   * 新しく生成された<code>Tics</code>オブジェクトを初期化します。
   * 
   * @param start 始点
   * @param increase 増分
   * @param end 終点
   */
  protected Tics(double start, double increase, double end) {
    this.start = start;
    this.increase = increase;
    this.end = end;
  }

  /**
   * 目盛りの刻み位置を設定します。
   * 
   * @param start 始点
   * @param increase 増分
   * @param end 終点
   */
  public void setTics(double start, double increase, double end) {
    this.start = start;
    this.increase = increase;
    this.end = end;
  }

  /**
   * 始点を設定します。
   * 
   * @param start 始点
   */
  public void setStart(double start) {
    this.start = start;
  }

  /**
   * 始点を返します。
   * 
   * @return 始点
   */
  public double getStart() {
    return this.start;
  }

  /**
   * 終点を設定します。
   * 
   * @param end 終点
   */
  public void setEnd(double end) {
    this.end = end;
  }

  /**
   * 終点を返します。
   * 
   * @return 終点
   */
  public double getEnd() {
    return this.end;
  }

  /**
   * 増分を設定します。
   * 
   * @param increase 増分
   */
  public void setIncrease(double increase) {
    this.increase = increase;
  }

  /**
   * 増分を返します。
   * 
   * @return 増分
   */
  public double getIncrease() {
    return this.increase;
  }
  
  /**
   * {@inheritDoc}
   */
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    long temp;
    temp = Double.doubleToLongBits(this.end);
    result = prime * result + (int)(temp ^ (temp >>> 32));
    temp = Double.doubleToLongBits(this.increase);
    result = prime * result + (int)(temp ^ (temp >>> 32));
    temp = Double.doubleToLongBits(this.start);
    result = prime * result + (int)(temp ^ (temp >>> 32));
    return result;
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;
    if (getClass() != obj.getClass()) return false;
    Tics other = (Tics)obj;
    if (Double.doubleToLongBits(this.end) != Double.doubleToLongBits(other.end)) return false;
    if (Double.doubleToLongBits(this.increase) != Double.doubleToLongBits(other.increase)) return false;
    if (Double.doubleToLongBits(this.start) != Double.doubleToLongBits(other.start)) return false;
    return true;
  }
}