01: /*
02: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
03: *
04: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
05: *
06: * The contents of this file are subject to the terms of either the GNU
07: * General Public License Version 2 only ("GPL") or the Common
08: * Development and Distribution License("CDDL") (collectively, the
09: * "License"). You may not use this file except in compliance with the
10: * License. You can obtain a copy of the License at
11: * http://www.netbeans.org/cddl-gplv2.html
12: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13: * specific language governing permissions and limitations under the
14: * License. When distributing the software, include this License Header
15: * Notice in each file and include the License file at
16: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
17: * particular file as subject to the "Classpath" exception as provided
18: * by Sun in the GPL Version 2 section of the License file that
19: * accompanied this code. If applicable, add the following below the
20: * License Header, with the fields enclosed by brackets [] replaced by
21: * your own identifying information:
22: * "Portions Copyrighted [year] [name of copyright owner]"
23: *
24: * Contributor(s):
25: *
26: * Portions Copyrighted 2007 Sun Microsystems, Inc.
27: */
28: package org.netbeans.modules.java.source.usages;
29:
30: /**
31: *
32: * @author Tomas Zezula
33: */
34: public final class Pair<P, K> {
35:
36: public final P first;
37: public final K second;
38:
39: private Pair(P first, K second) {
40: this .first = first;
41: this .second = second;
42: }
43:
44: public static <P, K> Pair<P, K> of(P first, K second) {
45: return new Pair<P, K>(first, second);
46: }
47:
48: @Override
49: public int hashCode() {
50: int hashCode = 0;
51: hashCode ^= first == null ? 0 : first.hashCode();
52: hashCode ^= second == null ? 0 : second.hashCode();
53: return hashCode;
54: }
55:
56: @Override
57: public boolean equals(final Object other) {
58: if (other instanceof Pair) {
59: Pair otherPair = (Pair) other;
60: return (this .first == null ? otherPair.first == null
61: : this .first.equals(otherPair.first))
62: && (this .second == null ? otherPair.second == null
63: : this .second.equals(otherPair.second));
64: }
65: return false;
66: }
67:
68: @Override
69: public String toString() {
70: return String.format("Pair[%s,%s]", first, second);
71: }
72: }
|