All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.javers.common.collections.Objects Maven / Gradle / Ivy

There is a newer version: 7.6.1
Show newest version
package org.javers.common.collections;

import org.javers.common.validation.Validate;

import java.util.function.BiFunction;

public class Objects {

    private static class NullSafetyEqualsWrapper implements BiFunction {
        private BiFunction delegate;

        private NullSafetyEqualsWrapper(BiFunction delegate) {
            Validate.argumentIsNotNull(delegate);
            this.delegate = delegate;
        }

        @Override
        public Boolean apply(Object o1, Object o2) {
            if (o1 == null && o2 == null) {
                return true;
            }

            if ((o1 == null && o2 != null) || (o1 != null && o2 == null)) {
                return false;
            }

            return delegate.apply(o1, o2);
        }
    }

    public static BiFunction nullSafetyWrapper(BiFunction unsafeEquals) {
        return new NullSafetyEqualsWrapper(unsafeEquals);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy