001package org.kuali.common.util.primitives;
002
003public final class Numbers {
004
005        private Numbers() {
006        }
007
008        public static boolean between(int number, int min, int max) {
009                return number >= min && number <= max;
010        }
011
012        /**
013         * Return the smallest Number it is safe to return. Returns a Byte, Short, Integer, or Long.
014         */
015        public static Number narrow(long number) {
016                if (isByte(number)) {
017                        return (byte) number;
018                } else if (isShort(number)) {
019                        return (short) number;
020                } else if (isInt(number)) {
021                        return (int) number;
022                } else {
023                        return number;
024                }
025        }
026
027        public static boolean isByte(long number) {
028                return number >= Byte.MIN_VALUE && number <= Byte.MAX_VALUE;
029        }
030
031        public static boolean isShort(long number) {
032                return number >= Short.MIN_VALUE && number <= Short.MAX_VALUE;
033        }
034
035        public static boolean isInt(long number) {
036                return number >= Integer.MIN_VALUE && number <= Integer.MAX_VALUE;
037        }
038
039}