EqualsUtil.java
/*
Developed with the contribution of the European Commission - Directorate General for Maritime Affairs and Fisheries
© European Union, 2015-2016.
This file is part of the Integrated Fisheries Data Management (IFDM) Suite. The IFDM Suite is free software: you can
redistribute it and/or modify it under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or any later version. The IFDM Suite 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 General Public License for more details. You should have received a
copy of the GNU General Public License along with the IFDM Suite. If not, see <http://www.gnu.org/licenses/>.
*/
package eu.europa.ec.fisheries.uvms.mobileterminal.constant;
import java.util.Date;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import eu.europa.ec.fisheries.uvms.mobileterminal.entity.inmarsatc.InmarsatCHistoryOceanRegion;
import eu.europa.ec.fisheries.uvms.mobileterminal.util.DateUtils;
public class EqualsUtil {
public static boolean compare(String one, String two) {
if(one == null && two == null) return true;
if(one == null) return false;
return one.equalsIgnoreCase(two);
}
public static boolean compare(Date one, Date two) {
return DateUtils.equalsDate(one, two);
}
public static boolean compare(Integer one, Integer two) {
if(one == null && two == null) return true;
if(one == null) return false;
return one.equals(two);
}
public static boolean compare(Boolean one, Boolean two) {
if(one == null && two == null) return true;
if(one == null) return false;
return one.equals(two);
}
public static int getHashCode(Object obj) {
if(obj == null) return 0;
return obj.hashCode();
}
public static boolean equalsOceanRegions(Set<InmarsatCHistoryOceanRegion> oceanRegionsOne, Set<InmarsatCHistoryOceanRegion> oceanRegionsTwo) {
boolean hasOceanRegionsOne = !CollectionUtils.isEmpty(oceanRegionsOne);
boolean hasOceanRegionsTwo = !CollectionUtils.isEmpty(oceanRegionsTwo);
if (!hasOceanRegionsOne && !hasOceanRegionsTwo) {
// Neither has ocean regions
return true;
}
else if (hasOceanRegionsOne ^ hasOceanRegionsTwo) {
// One has and the other hasn't
return false;
}
else {
// True iff both sets of regions are equal
return CollectionUtils.isEqualCollection(oceanRegionsOne, oceanRegionsTwo);
}
}
}