| java.lang.Object org.joda.time.format.DateTimeParserBucket
DateTimeParserBucket | public class DateTimeParserBucket (Code) | | DateTimeParserBucket is an advanced class, intended mainly for parser
implementations. It can also be used during normal parsing operations to
capture more information about the parse.
This class allows fields to be saved in any order, but be physically set in
a consistent order. This is useful for parsing against formats that allow
field values to contradict each other.
Field values are applied in an order where the "larger" fields are set
first, making their value less likely to stick. A field is larger than
another when it's range duration is longer. If both ranges are the same,
then the larger field has the longer duration. If it cannot be determined
which field is larger, then the fields are set in the order they were saved.
For example, these fields were saved in this order: dayOfWeek, monthOfYear,
dayOfMonth, dayOfYear. When computeMillis is called, the fields are set in
this order: monthOfYear, dayOfYear, dayOfMonth, dayOfWeek.
DateTimeParserBucket is mutable and not thread-safe.
author: Brian S O'Neill author: Fredrik Borgh since: 1.0 |
Inner Class :class SavedState | |
Inner Class :static class SavedField implements Comparable | |
Method Summary | |
public long | computeMillis() Computes the parsed datetime by setting the saved fields. | public long | computeMillis(boolean resetFields) Computes the parsed datetime by setting the saved fields. | public long | computeMillis(boolean resetFields, String text) Computes the parsed datetime by setting the saved fields. | public Chronology | getChronology() Gets the chronology of the bucket, which will be a local (UTC) chronology. | public Locale | getLocale() Returns the locale to be used during parsing. | public int | getOffset() Returns the time zone offset in milliseconds used by computeMillis,
unless getZone doesn't return null. | public Integer | getPivotYear() Returns the pivot year used for parsing two-digit years. | public DateTimeZone | getZone() Returns the time zone used by computeMillis, or null if an offset is
used instead. | public boolean | restoreState(Object savedState) Restores the state of this bucket from a previously saved state. | public void | saveField(DateTimeField field, int value) Saves a datetime field value. | public void | saveField(DateTimeFieldType fieldType, int value) Saves a datetime field value. | public void | saveField(DateTimeFieldType fieldType, String text, Locale locale) Saves a datetime field text value. | public Object | saveState() Saves the state of this bucket, returning it in an opaque object. | public void | setOffset(int offset) Set a time zone offset to be used when computeMillis is called, which
overrides the time zone. | public void | setPivotYear(Integer pivotYear) Sets the pivot year to use when parsing two digit years. | public void | setZone(DateTimeZone zone) Set a time zone to be used when computeMillis is called, which
overrides any set time zone offset. |
DateTimeParserBucket | public DateTimeParserBucket(long instantLocal, Chronology chrono, Locale locale)(Code) | | Constucts a bucket.
Parameters: instantLocal - the initial millis from 1970-01-01T00:00:00, local time Parameters: chrono - the chronology to use Parameters: locale - the locale to use |
DateTimeParserBucket | public DateTimeParserBucket(long instantLocal, Chronology chrono, Locale locale, Integer pivotYear)(Code) | | Constucts a bucket, with the option of specifying the pivot year for
two-digit year parsing.
Parameters: instantLocal - the initial millis from 1970-01-01T00:00:00, local time Parameters: chrono - the chronology to use Parameters: locale - the locale to use Parameters: pivotYear - the pivot year to use when parsing two-digit years since: 1.1 |
computeMillis | public long computeMillis()(Code) | | Computes the parsed datetime by setting the saved fields.
This method is idempotent, but it is not thread-safe.
milliseconds since 1970-01-01T00:00:00Z throws: IllegalArgumentException - if any field is out of range |
computeMillis | public long computeMillis(boolean resetFields)(Code) | | Computes the parsed datetime by setting the saved fields.
This method is idempotent, but it is not thread-safe.
Parameters: resetFields - false by default, but when true, unsaved field values are cleared milliseconds since 1970-01-01T00:00:00Z throws: IllegalArgumentException - if any field is out of range |
computeMillis | public long computeMillis(boolean resetFields, String text)(Code) | | Computes the parsed datetime by setting the saved fields.
This method is idempotent, but it is not thread-safe.
Parameters: resetFields - false by default, but when true, unsaved field values are cleared Parameters: text - optional text being parsed, to be included in any error message milliseconds since 1970-01-01T00:00:00Z throws: IllegalArgumentException - if any field is out of range since: 1.3 |
getChronology | public Chronology getChronology()(Code) | | Gets the chronology of the bucket, which will be a local (UTC) chronology.
|
getLocale | public Locale getLocale()(Code) | | Returns the locale to be used during parsing.
the locale to use |
getOffset | public int getOffset()(Code) | | Returns the time zone offset in milliseconds used by computeMillis,
unless getZone doesn't return null.
|
getPivotYear | public Integer getPivotYear()(Code) | | Returns the pivot year used for parsing two-digit years.
If null is returned, this indicates default behaviour
Integer value of the pivot year, null if not set since: 1.1 |
getZone | public DateTimeZone getZone()(Code) | | Returns the time zone used by computeMillis, or null if an offset is
used instead.
|
restoreState | public boolean restoreState(Object savedState)(Code) | | Restores the state of this bucket from a previously saved state. The
state object passed into this method is not consumed, and it can be used
later to restore to that state again.
Parameters: savedState - opaque saved state, returned from saveState true state object is valid and state restored |
saveField | public void saveField(DateTimeField field, int value)(Code) | | Saves a datetime field value.
Parameters: field - the field, whose chronology must match that of this bucket Parameters: value - the value |
saveField | public void saveField(DateTimeFieldType fieldType, int value)(Code) | | Saves a datetime field value.
Parameters: fieldType - the field type Parameters: value - the value |
saveField | public void saveField(DateTimeFieldType fieldType, String text, Locale locale)(Code) | | Saves a datetime field text value.
Parameters: fieldType - the field type Parameters: text - the text value Parameters: locale - the locale to use |
saveState | public Object saveState()(Code) | | Saves the state of this bucket, returning it in an opaque object. Call
restoreState to undo any changes that were made since the state was
saved. Calls to saveState may be nested.
opaque saved state, which may be passed to restoreState |
setOffset | public void setOffset(int offset)(Code) | | Set a time zone offset to be used when computeMillis is called, which
overrides the time zone.
|
setPivotYear | public void setPivotYear(Integer pivotYear)(Code) | | Sets the pivot year to use when parsing two digit years.
If the value is set to null, this will indicate that default
behaviour should be used.
Parameters: pivotYear - the pivot year to use since: 1.1 |
setZone | public void setZone(DateTimeZone zone)(Code) | | Set a time zone to be used when computeMillis is called, which
overrides any set time zone offset.
Parameters: zone - the date time zone to operate in, or null if UTC |
|
|