Pair.java revision 836e6b40a94ec3fb7545a76cb072960442b7eee9
12ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* GENERATED SOURCE. DO NOT MODIFY. */
22ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/*
32ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller *******************************************************************************
42ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Copyright (C) 2014, International Business Machines Corporation and
52ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * others. All Rights Reserved.
62ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller *******************************************************************************
72ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */
82ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpackage android.icu.impl;
92ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/**
112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * A pair of objects: first and second.
122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller *
132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param <F> first object type
142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param <S> second object type
15836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller * @hide Only a subset of ICU is exposed in Android
16704056c96cc5de08c2425fa1679a5c0a92c5a88eNeil Fuller * @hide All android.icu classes are currently hidden
172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */
182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpublic class Pair<F, S> {
192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public final F first;
202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public final S second;
212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    protected Pair(F first, S second) {
232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        this.first = first;
242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        this.second = second;
252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    /**
282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * Creates a pair object
292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * @param first must be non-null
302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * @param second must be non-null
312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     * @return The pair object.
322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller     */
332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public static <F, S> Pair<F, S> of(F first, S second) {
342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        if (first == null || second == null) {
352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller            throw new IllegalArgumentException("Pair.of requires non null values.");
362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        }
372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return new Pair<F, S>(first, second);
382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    @Override
412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public boolean equals(Object other) {
422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        if (other == this) {
432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller            return true;
442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        }
452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        if (!(other instanceof Pair)) {
462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller            return false;
472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        }
482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        Pair<?, ?> rhs = (Pair<?, ?>) other;
492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return first.equals(rhs.first) && second.equals(rhs.second);
502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller
522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    @Override
532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    public int hashCode() {
542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller        return first.hashCode() * 37 + second.hashCode();
552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller    }
562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller}
57