org.apache.juneau.internal.Pair Maven / Gradle / Ivy
// ***************************************************************************************************************************
// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *
// * with the License. You may obtain a copy of the License at *
// * *
// * http://www.apache.org/licenses/LICENSE-2.0 *
// * *
// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *
// * specific language governing permissions and limitations under the License. *
// ***************************************************************************************************************************
package org.apache.juneau.internal;
/**
* Represents a simple object pair.
*
* @param The first object type.
* @param The second object type.
*/
public class Pair {
private final F first;
private final S second;
/**
* Constructor.
*
* @param first The first object in the pair.
* @param second The second object in the pair.
*/
public Pair(F first, S second) {
this.first = first;
this.second = second;
}
/**
* Returns the first object in the pair.
*
* @return The first object in the pair.
*/
public F first() {
return first;
}
/**
* Returns the second object in the pair.
*
* @return The second object in the pair.
*/
public S second() {
return second;
}
@Override /* Object */
public boolean equals(Object o) {
if (o instanceof Pair) {
Pair,?> p = (Pair,?>)o;
return ObjectUtils.equals(first, p.first) && ObjectUtils.equals(second, p.second);
}
return false;
}
@Override /* Object */
public int hashCode() {
return (first == null ? 0 : first.hashCode()) ^ (second == null ? 0 : second.hashCode());
}
}