Package org.joda.time.field
Class FieldUtils
- java.lang.Object
-
- org.joda.time.field.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.
-
-
-
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 valueval2
- 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 valueval2
- 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 fromval2
- 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 valueval2
- 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 valueval2
- 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 valueval2
- 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 dividenddivisor
- 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 dividenddivisor
- the divisorroundingMode
- 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 valueval2
- 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 checklowerBound
- the lower bound allowed for valueupperBound
- 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 checklowerBound
- the lower bound allowed for valueupperBound
- 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 checklowerBound
- the lower bound allowed for valueupperBound
- 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 rangewrapValue
- 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 rangeminValue
- 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 objectobject2
- the second object- Returns:
- true if equal
- Since:
- 1.4
-
-