/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.gl;
/**
* This class is used to compare objects with one another
*/
public class ObjectHelper {
protected ObjectHelper() {
}
/**
* Returns true if object on left side is equal to object on right side
*
* @param lhs object on left side of equation
* @param rhs object on right side of equation
* @return true if both lhs and rhs are null or if lhs.equals(rhs)
*/
static public boolean isEqual(Object lhs, Object rhs) {
return (null == lhs && null == rhs) || (null != lhs && lhs.equals(rhs));
}
/**
* Return true if object on left side is one of the items in array of objects
*
* @param lhs object on left side of equation
* @param rhs object on right side of equation
* @return false if rhs is null. true if isEqual(lhs, rhs[i]) for any ith element of rhs.
*/
static public boolean isOneOf(Object lhs, Object[] rhs) {
if (rhs == null)
return false;
// simple linear search. Arrays.binarySearch isn't appropriate
// because the elements of rhs aren't in natural order.
for (int i = 0; i < rhs.length; i++) {
if (isEqual(lhs, rhs[i])) {
return true;
}
}
return false;
}
}