io.ebeaninternal.server.expression.Same Maven / Gradle / Ivy
package io.ebeaninternal.server.expression;
import java.util.Collection;
import java.util.Iterator;
import java.util.Objects;
/**
* Utility to help isSame methods.
*/
final class Same {
/**
* Return true if both values are null or both not null.
*/
static boolean sameByNull(Object v1, Object v2) {
return (v1 == null) == (v2 == null);
}
/**
* Null safe equals check.
*/
static boolean sameByValue(Object v1, Object v2) {
return Objects.equals(v1, v2);
}
/**
* Return true if both collections are the same by value and order is taken into account.
*/
static boolean sameByValue(Collection> v1, Collection> v2) {
if (v1 == null) {
return v2 == null;
}
if (v2 == null || v1.size() != v2.size()) {
return false;
}
Iterator> thisIt = v1.iterator();
Iterator> thatIt = v2.iterator();
while (thisIt.hasNext() && thatIt.hasNext()) {
if (!thisIt.next().equals(thatIt.next())) {
return false;
}
}
return true;
}
/**
* Null safe check by sameByValue or sameByNull based on byValue.
*/
static boolean sameBy(boolean byValue, Object value, Object value1) {
if (byValue) {
return sameByValue(value, value1);
} else {
return sameByNull(value, value1);
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy