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.ABytesStaticFacade; import de.invesdwin.util.math.internal.CheckedCastBytes; import de.invesdwin.util.math.internal.CheckedCastBytesObj; @StaticFacadeDefinition(name = "de.invesdwin.util.math.internal.ABytesStaticFacade", targets = { CheckedCastBytes.class, CheckedCastBytesObj.class, com.google.common.primitives.Bytes.class }) @Immutable public final class Bytes extends ABytesStaticFacade { public static final ADelegateComparator<Byte> COMPARATOR = new ADelegateComparator<Byte>() { @Override protected Comparable<?> getCompareCriteria(final Byte e) { return e; } }; private Bytes() {} public static Byte min(final Byte... times) { Byte minTime = null; for (final Byte time : times) { minTime = min(minTime, time); } return minTime; } public static Byte min(final Byte time1, final Byte time2) { if (time1 == null) { return time2; } else if (time2 == null) { return time1; } if (time1 < time2) { return time1; } else { return time2; } } public static Byte max(final Byte... times) { Byte maxTime = null; for (final Byte time : times) { maxTime = max(maxTime, time); } return maxTime; } public static Byte max(final Byte time1, final Byte time2) { if (time1 == null) { return time2; } else if (time2 == null) { return time1; } if (time1 > time2) { return time1; } else { return time2; } } public static Byte between(final Byte value, final Byte min, final Byte max) { return max(min(value, max), min); } }