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