Tuple.java

package com.vikingz.campustycoon.Util.Types;

/**
 * This class is used to create a tuple.
 * Used to return pair of values that can have different
 * types.
 */
public class Tuple<X, Y> { 

	public final X x; 
	public final Y y; 

	/**
	 * Constructor for the Tuple class.
	 * @param x x value
	 * @param y y value
	 */
	public Tuple(X x, Y y) { 
	this.x = x; 
	this.y = y; 
	} 

	/**
	 * To String method for eaier degbugging.
	 */
	@Override
	public String toString() {

		String str = "[ " + x  + " : " + y +" ]";
		return str;
	}


	/**
	 * Checks if 2 tuples are equal.
	 * @param o The object to compare to.
	 */
	@Override
	public boolean equals(Object o) {
		if (this == o) {
			return true;
		}

		if (o == null || getClass() != o.getClass()) {
			return false;
		}

		Tuple<?, ?> tuple = (Tuple<?, ?>) o;

		return (x.equals(tuple.x) && y.equals(tuple.y));
	}




}