All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.molgenis.util.Pair Maven / Gradle / Ivy

There is a newer version: 8.4.5
Show newest version
package org.molgenis.util;

/**
 * Generic pair to link two objects together. A Pair holds one object of type T and one object of
 * type T2. The pair is the owner of these objects. The basic use of this type is to link two object
 * belonging together.
 *
 * @param  The type of the first element
 * @param  The type of the second element
 */
public class Pair {
  // constructor(s)

  /** Standard constructor, which initializes the two values to null. */
  public Pair() {}

  /**
   * Specific constructor, which initializes the two values to the two values passed as parameters.
   * After this call the pair is owner of the two objects.
   *
   * @param a Pointer to the first object.
   * @param b Pointer to the second object.
   */
  public Pair(T a, T2 b) {
    this.a = a;
    this.b = b;
  }

  // access methods

  /**
   * Returns the pointer to the first object.
   *
   * @return Pointer to the first object.
   */
  public T getA() {
    return this.a;
  }

  /**
   * Sets the first object
   *
   * @param a New pointer for the first object
   */
  public void setA(T a) {
    this.a = a;
  }

  /**
   * Returns the pointer to the second object.
   *
   * @return Pointer to the second object.
   */
  public T2 getB() {
    return this.b;
  }

  /**
   * Sets the second object
   *
   * @param b New pointer for the second object
   */
  public void setB(T2 b) {
    this.b = b;
  }

  // Object overloads
  @Override
  public String toString() {
    return "Pair(" + a.toString() + ", " + b.toString() + ")";
  }

  // member variables
  /** Pointer to the first object */
  private T a = null;
  /** Pointer to the second object */
  private T2 b = null;

  @Override
  public boolean equals(Object o) {
    if (o instanceof Pair) {
      @SuppressWarnings("unchecked")
      Pair that = ((Pair) o);

      return (this.a.equals(that.a) && this.b.equals(that.b));
    }
    return false;
  }

  @Override
  public int hashCode() {
    return a.hashCode() + b.hashCode();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy