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

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

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