Class StrictDateTimeField

All Implemented Interfaces:
Serializable

public class StrictDateTimeField extends DelegatedDateTimeField
Converts a lenient DateTimeField into a strict one. By being strict, the set throws an IllegalArgumentException if the value is out of bounds.

StrictDateTimeField is thread-safe and immutable.

Since:
1.0
Author:
Brian S O'Neill
See Also:
  • Constructor Details

    • StrictDateTimeField

      protected StrictDateTimeField(DateTimeField field)
  • Method Details

    • getInstance

      public static DateTimeField getInstance(DateTimeField field)
      Returns a strict version of the given field. If it is already strict, then it is returned as-is. Otherwise, a new StrictDateTimeField is returned.
      Parameters:
      field - the field, null returns null
      Returns:
      the field. may be null
    • isLenient

      public final boolean isLenient()
      Description copied from class: DateTimeField
      Returns true if the set method is lenient. If so, it accepts values that are out of bounds. For example, a lenient day of month field accepts 32 for January, converting it to February 1.
      Overrides:
      isLenient in class DelegatedDateTimeField
      Returns:
      true if this field is lenient
    • set

      public long set(long instant, int value)
      Does a bounds check before setting the value.
      Overrides:
      set in class DelegatedDateTimeField
      Parameters:
      instant - the milliseconds from 1970-01-01T00:00:00Z to set in
      value - the value to set, in the units of the field
      Returns:
      the updated milliseconds
      Throws:
      IllegalArgumentException - if the value is invalid