package de.invesdwin.util.math; import javax.annotation.concurrent.Immutable; import de.invesdwin.norva.apt.staticfacade.StaticFacadeDefinition; import de.invesdwin.util.lang.ADelegateComparator; import de.invesdwin.util.math.internal.AFloatsStaticFacade; import de.invesdwin.util.math.internal.CheckedCastFloats; import de.invesdwin.util.math.internal.CheckedCastFloatsObj; @StaticFacadeDefinition(name = "de.invesdwin.util.math.internal.AFloatsStaticFacade", targets = { CheckedCastFloats.class, CheckedCastFloatsObj.class, com.google.common.primitives.Floats.class }) @Immutable public final class Floats extends AFloatsStaticFacade { public static final ADelegateComparator<Float> COMPARATOR = new ADelegateComparator<Float>() { @Override protected Comparable<?> getCompareCriteria(final Float e) { return e; } }; private Floats() {} public static Float max(final Float first, final Float second) { if (first == null) { return second; } else if (second == null) { return first; } else { return Math.max(first, second); } } public static Float min(final Float first, final Float second) { if (first == null) { return second; } else if (second == null) { return first; } else { return Math.min(first, second); } } public static Float between(final Float value, final Float min, final Float max) { return max(min(value, max), min); } }