org.javers.core.metamodel.type.CustomValueComparatorNullSafe Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javers-core Show documentation
Show all versions of javers-core Show documentation
JaVers - object auditing and diff framework for Java
package org.javers.core.metamodel.type;
import org.javers.common.validation.Validate;
import org.javers.core.diff.custom.CustomValueComparator;
import org.javers.core.metamodel.property.MissingProperty;
class CustomValueComparatorNullSafe implements CustomValueComparator {
private final CustomValueComparator delegate;
CustomValueComparatorNullSafe(CustomValueComparator delegate) {
Validate.argumentIsNotNull(delegate);
this.delegate = delegate;
}
@Override
public boolean equals(T o1, T o2) {
if (o1 == null && o2 == null) {
return true;
}
if ((o1 == null && o2 != null) || (o1 != null && o2 == null)) {
return false;
}
if (o1 == MissingProperty.INSTANCE || o2 == MissingProperty.INSTANCE) {
return false;
}
return delegate.equals(o1, o2);
}
@Override
public String toString(T value) {
if (value == null) {
return "";
}
return delegate.toString(value);
}
}