Class FieldUtils


  • public class FieldUtils
    extends java.lang.Object
    General utilities that don't fit elsewhere.

    FieldUtils is thread-safe and immutable.

    Since:
    1.0
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean equals​(java.lang.Object object1, java.lang.Object object2)
      Compares two objects as equals handling null.
      static int getWrappedValue​(int value, int minValue, int maxValue)
      Utility method that ensures the given value lies within the field's legal value range.
      static int getWrappedValue​(int currentValue, int wrapValue, int minValue, int maxValue)
      Utility method used by addWrapField implementations to ensure the new value lies within the field's legal value range.
      static int safeAdd​(int val1, int val2)
      Add two values throwing an exception if overflow occurs.
      static long safeAdd​(long val1, long val2)
      Add two values throwing an exception if overflow occurs.
      static long safeDivide​(long dividend, long divisor)
      Divides the dividend by the divisor throwing an exception if overflow occurs or the divisor is zero.
      static long safeDivide​(long dividend, long divisor, java.math.RoundingMode roundingMode)
      Divides the dividend by divisor.
      static int safeMultiply​(int val1, int val2)
      Multiply two values throwing an exception if overflow occurs.
      static long safeMultiply​(long val1, int val2)
      Multiply two values throwing an exception if overflow occurs.
      static long safeMultiply​(long val1, long val2)
      Multiply two values throwing an exception if overflow occurs.
      static int safeMultiplyToInt​(long val1, long val2)
      Multiply two values to return an int throwing an exception if overflow occurs.
      static int safeNegate​(int value)
      Negates the input throwing an exception if it can't negate it.
      static long safeSubtract​(long val1, long val2)
      Subtracts two values throwing an exception if overflow occurs.
      static int safeToInt​(long value)
      Casts to an int throwing an exception if overflow occurs.
      static void verifyValueBounds​(java.lang.String fieldName, int value, int lowerBound, int upperBound)
      Verify that input values are within specified bounds.
      static void verifyValueBounds​(DateTimeField field, int value, int lowerBound, int upperBound)
      Verify that input values are within specified bounds.
      static void verifyValueBounds​(DateTimeFieldType fieldType, int value, int lowerBound, int upperBound)
      Verify that input values are within specified bounds.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • safeNegate

        public static int safeNegate​(int value)
        Negates the input throwing an exception if it can't negate it.
        Parameters:
        value - the value to negate
        Returns:
        the negated value
        Throws:
        java.lang.ArithmeticException - if the value is Integer.MIN_VALUE
        Since:
        1.1
      • safeAdd

        public static int safeAdd​(int val1,
                                  int val2)
        Add two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • safeAdd

        public static long safeAdd​(long val1,
                                   long val2)
        Add two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • safeSubtract

        public static long safeSubtract​(long val1,
                                        long val2)
        Subtracts two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value, to be taken away from
        val2 - the second value, the amount to take away
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • safeMultiply

        public static int safeMultiply​(int val1,
                                       int val2)
        Multiply two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
        Since:
        1.2
      • safeMultiply

        public static long safeMultiply​(long val1,
                                        int val2)
        Multiply two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
        Since:
        1.2
      • safeMultiply

        public static long safeMultiply​(long val1,
                                        long val2)
        Multiply two values throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • safeDivide

        public static long safeDivide​(long dividend,
                                      long divisor)
        Divides the dividend by the divisor throwing an exception if overflow occurs or the divisor is zero.
        Parameters:
        dividend - the dividend
        divisor - the divisor
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the operation overflows or the divisor is zero
      • safeDivide

        public static long safeDivide​(long dividend,
                                      long divisor,
                                      java.math.RoundingMode roundingMode)
        Divides the dividend by divisor. Rounding of result occurs as per the roundingMode.
        Parameters:
        dividend - the dividend
        divisor - the divisor
        roundingMode - the desired rounding mode
        Returns:
        the division result as per the specified rounding mode
        Throws:
        java.lang.ArithmeticException - if the operation overflows or the divisor is zero
      • safeToInt

        public static int safeToInt​(long value)
        Casts to an int throwing an exception if overflow occurs.
        Parameters:
        value - the value
        Returns:
        the value as an int
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • safeMultiplyToInt

        public static int safeMultiplyToInt​(long val1,
                                            long val2)
        Multiply two values to return an int throwing an exception if overflow occurs.
        Parameters:
        val1 - the first value
        val2 - the second value
        Returns:
        the new total
        Throws:
        java.lang.ArithmeticException - if the value is too big or too small
      • verifyValueBounds

        public static void verifyValueBounds​(DateTimeField field,
                                             int value,
                                             int lowerBound,
                                             int upperBound)
        Verify that input values are within specified bounds.
        Parameters:
        value - the value to check
        lowerBound - the lower bound allowed for value
        upperBound - the upper bound allowed for value
        Throws:
        IllegalFieldValueException - if value is not in the specified bounds
      • verifyValueBounds

        public static void verifyValueBounds​(DateTimeFieldType fieldType,
                                             int value,
                                             int lowerBound,
                                             int upperBound)
        Verify that input values are within specified bounds.
        Parameters:
        value - the value to check
        lowerBound - the lower bound allowed for value
        upperBound - the upper bound allowed for value
        Throws:
        IllegalFieldValueException - if value is not in the specified bounds
        Since:
        1.1
      • verifyValueBounds

        public static void verifyValueBounds​(java.lang.String fieldName,
                                             int value,
                                             int lowerBound,
                                             int upperBound)
        Verify that input values are within specified bounds.
        Parameters:
        value - the value to check
        lowerBound - the lower bound allowed for value
        upperBound - the upper bound allowed for value
        Throws:
        IllegalFieldValueException - if value is not in the specified bounds
      • getWrappedValue

        public static int getWrappedValue​(int currentValue,
                                          int wrapValue,
                                          int minValue,
                                          int maxValue)
        Utility method used by addWrapField implementations to ensure the new value lies within the field's legal value range.
        Parameters:
        currentValue - the current value of the data, which may lie outside the wrapped value range
        wrapValue - the value to add to current value before wrapping. This may be negative.
        minValue - the wrap range minimum value.
        maxValue - the wrap range maximum value. This must be greater than minValue (checked by the method).
        Returns:
        the wrapped value
        Throws:
        java.lang.IllegalArgumentException - if minValue is greater than or equal to maxValue
      • getWrappedValue

        public static int getWrappedValue​(int value,
                                          int minValue,
                                          int maxValue)
        Utility method that ensures the given value lies within the field's legal value range.
        Parameters:
        value - the value to fit into the wrapped value range
        minValue - the wrap range minimum value.
        maxValue - the wrap range maximum value. This must be greater than minValue (checked by the method).
        Returns:
        the wrapped value
        Throws:
        java.lang.IllegalArgumentException - if minValue is greater than or equal to maxValue
      • equals

        public static boolean equals​(java.lang.Object object1,
                                     java.lang.Object object2)
        Compares two objects as equals handling null.
        Parameters:
        object1 - the first object
        object2 - the second object
        Returns:
        true if equal
        Since:
        1.4