Range.java

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

/**
 * 範囲を表すクラスです。
 * 
 * @author koga
 * @version $Revision: 1.8 $, 2005/07/28
 */
public abstract class Range implements GnuplotComponent {
  /** 最小値 */
  private double minimum;
  /** 最大値 */
  private double maximum;

  /**
   * 新しく生成された<code>Range</code>オブジェクトを初期化します。
   * @param minimum 最小値
   * @param maximum 最大値
   */
  public Range(double minimum, double maximum) {
    this.minimum = minimum;
    this.maximum = maximum;
  }
  
  /**
   * 範囲を設定します。
   * 
   * @param minimum 最小値
   * @param maximum 最大値
   */
  public void setRange(final double minimum, final double maximum) {
    this.minimum = minimum;
    this.maximum = maximum;
  }

  /**
   * 最小値を設定します。
   * 
   * @param minimum 最小値
   */
  public void setMinimum(final double minimum) {
    this.minimum = minimum;
  }

  /**
   * 最小値を返します。
   * 
   * @return 最小値
   */
  public double getMinimum() {
    return this.minimum;
  }

  /**
   * 最大値を設定します。
   * 
   * @param maximum 最大値
   */
  public void setMaximum(final double maximum) {
    this.maximum = maximum;
  }

  /**
   * 最大値を返します。
   * 
   * @return 最大値
   */
  public double getMaximum() {
    return this.maximum;
  }
  

  /**
   * {@inheritDoc}
   */
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    long temp;
    temp = Double.doubleToLongBits(this.maximum);
    result = prime * result + (int)(temp ^ (temp >>> 32));
    temp = Double.doubleToLongBits(this.minimum);
    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;
    Range other = (Range)obj;
    if (Double.doubleToLongBits(this.maximum) != Double.doubleToLongBits(other.maximum)) return false;
    if (Double.doubleToLongBits(this.minimum) != Double.doubleToLongBits(other.minimum)) return false;
    return true;
  }
}