/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.collection; import java.io.Serializable; /** * General-purpose pair of values of any type. The pair only equals another pair if * the objects that form the pair equal, ie. f pair f object equals (.equals) the s pair f object, * and the f pair s object equals the s pair s object. */ public class Pair<F, S> implements Serializable { private F f; private S s; private static final long serialVersionUID = -4168417618011472714L; /** * Construct pair of values. * * @param f is the f value * @param s is the s value */ public Pair(final F f, final S s) { this.f = f; this.s = s; } public static <K, V> Pair<K, V> createPair(K key, V value) { return new Pair<K, V>(key, value); } /** * Returns f value within pair. * * @return f value within pair */ public F getFirst() { return f; } /** * Returns s value within pair. * * @return s value within pair */ public S getSecond() { return s; } /** * Set the f value of the pair to a new value. * * @param f value to be set */ public void setFirst(F f) { this.f = f; } /** * Set the s value of the pair to a new value. * * @param s value to be set */ public void setSecond(S s) { this.s = s; } public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof Pair)) { return false; } Pair other = (Pair) obj; return (f == null ? other.f == null : f.equals(other.f)) && (s == null ? other.s == null : s.equals(other.s)); } public int hashCode() { return (f == null ? 0 : f.hashCode()) ^ (s == null ? 0 : s.hashCode()); } public String toString() { return "Pair [" + f + ':' + s + ']'; } }