Class FieldUtils

java.lang.Object
org.joda.time.field.FieldUtils

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

FieldUtils is thread-safe and immutable.

Since:
1.0
Author:
Stephen Colebourne
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    equals(Object object1, 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, 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(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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • 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:
      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:
      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:
      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:
      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:
      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:
      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:
      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:
      ArithmeticException - if the operation overflows or the divisor is zero
    • safeDivide

      public static long safeDivide(long dividend, long divisor, 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:
      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:
      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:
      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(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:
      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:
      IllegalArgumentException - if minValue is greater than or equal to maxValue
    • equals

      public static boolean equals(Object object1, 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