org.joda.time.base
Class BasePartial

java.lang.Object
  extended by org.joda.time.base.AbstractPartial
      extended by org.joda.time.base.BasePartial
All Implemented Interfaces:
Serializable, Comparable<ReadablePartial>, ReadablePartial
Direct Known Subclasses:
MonthDay, TimeOfDay, YearMonth, YearMonthDay

public abstract class BasePartial
extends AbstractPartial
implements ReadablePartial, Serializable

BasePartial is an abstract implementation of ReadablePartial that stores data in array and Chronology fields.

This class should generally not be used directly by API users. The ReadablePartial interface should be used when different kinds of partial objects are to be referenced.

BasePartial subclasses may be mutable and not thread-safe.

Since:
1.0
Author:
Stephen Colebourne
See Also:
Serialized Form

Constructor Summary
protected BasePartial()
          Constructs a partial with the current time, using ISOChronology in the default zone to extract the fields.
protected BasePartial(BasePartial base, Chronology chrono)
          Private constructor to be used by subclasses only which performs no validation.
protected BasePartial(BasePartial base, int[] values)
          Private constructor to be used by subclasses only which performs no validation.
protected BasePartial(Chronology chronology)
          Constructs a partial with the current time, using the specified chronology and zone to extract the fields.
protected BasePartial(int[] values, Chronology chronology)
          Constructs a partial with specified time field values and chronology.
protected BasePartial(long instant)
          Constructs a partial extracting the partial fields from the specified milliseconds using the ISOChronology in the default zone.
protected BasePartial(long instant, Chronology chronology)
          Constructs a partial extracting the partial fields from the specified milliseconds using the chronology provided.
protected BasePartial(Object instant, Chronology chronology)
          Constructs a partial from an Object that represents a time, using the specified chronology.
protected BasePartial(Object instant, Chronology chronology, DateTimeFormatter parser)
          Constructs a partial from an Object that represents a time, using the specified chronology.
 
Method Summary
 Chronology getChronology()
          Gets the chronology of the partial which is never null.
 int getValue(int index)
          Gets the value of the field at the specifed index.
 int[] getValues()
          Gets an array of the value of each of the fields that this partial supports.
protected  void setValue(int index, int value)
          Sets the value of the field at the specified index.
protected  void setValues(int[] values)
          Sets the values of all fields.
 String toString(String pattern)
          Output the date using the specified format pattern.
 String toString(String pattern, Locale locale)
          Output the date using the specified format pattern.
 
Methods inherited from class org.joda.time.base.AbstractPartial
compareTo, equals, get, getField, getField, getFields, getFieldType, getFieldTypes, hashCode, indexOf, indexOf, indexOfSupported, indexOfSupported, isAfter, isBefore, isEqual, isSupported, toDateTime, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.joda.time.ReadablePartial
equals, get, getField, getFieldType, hashCode, isSupported, size, toDateTime, toString
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

BasePartial

protected BasePartial()
Constructs a partial with the current time, using ISOChronology in the default zone to extract the fields.

The constructor uses the default time zone, resulting in the local time being initialised. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).


BasePartial

protected BasePartial(Chronology chronology)
Constructs a partial with the current time, using the specified chronology and zone to extract the fields.

The constructor uses the time zone of the chronology specified. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

Parameters:
chronology - the chronology, null means ISOChronology in the default zone

BasePartial

protected BasePartial(long instant)
Constructs a partial extracting the partial fields from the specified milliseconds using the ISOChronology in the default zone.

The constructor uses the default time zone, resulting in the local time being initialised. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z

BasePartial

protected BasePartial(long instant,
                      Chronology chronology)
Constructs a partial extracting the partial fields from the specified milliseconds using the chronology provided.

The constructor uses the time zone of the chronology specified. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z
chronology - the chronology, null means ISOChronology in the default zone

BasePartial

protected BasePartial(Object instant,
                      Chronology chronology)
Constructs a partial from an Object that represents a time, using the specified chronology.

The recognised object types are defined in ConverterManager and include ReadableInstant, String, Calendar and Date.

The constructor uses the time zone of the chronology specified. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

Parameters:
instant - the datetime object
chronology - the chronology, null means use converter
Throws:
IllegalArgumentException - if the date is invalid

BasePartial

protected BasePartial(Object instant,
                      Chronology chronology,
                      DateTimeFormatter parser)
Constructs a partial from an Object that represents a time, using the specified chronology.

The recognised object types are defined in ConverterManager and include ReadableInstant, String, Calendar and Date.

The constructor uses the time zone of the chronology specified. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

Parameters:
instant - the datetime object
chronology - the chronology, null means use converter
parser - if converting from a String, the given parser is preferred
Throws:
IllegalArgumentException - if the date is invalid
Since:
1.3

BasePartial

protected BasePartial(int[] values,
                      Chronology chronology)
Constructs a partial with specified time field values and chronology.

The constructor uses the time zone of the chronology specified. Once the constructor is complete, all further calculations are performed without reference to a timezone (by switching to UTC).

The array of values is assigned (not cloned) to the new instance.

Parameters:
values - the new set of values
chronology - the chronology, null means ISOChronology in the default zone
Throws:
IllegalArgumentException - if the values are invalid

BasePartial

protected BasePartial(BasePartial base,
                      int[] values)
Private constructor to be used by subclasses only which performs no validation.

Data is assigned (not cloned) to the new instance.

Parameters:
base - the base partial
values - the new set of values, not cloned, null means use base

BasePartial

protected BasePartial(BasePartial base,
                      Chronology chrono)
Private constructor to be used by subclasses only which performs no validation.

Data is assigned (not cloned) to the new instance. This should not be used by mutable subclasses.

Parameters:
base - the base partial
chrono - the chronology to use, null means use base
Method Detail

getValue

public int getValue(int index)
Gets the value of the field at the specifed index.

Specified by:
getValue in interface ReadablePartial
Parameters:
index - the index
Returns:
the value
Throws:
IndexOutOfBoundsException - if the index is invalid

getValues

public int[] getValues()
Gets an array of the value of each of the fields that this partial supports.

The fields are returned largest to smallest, for example Hour, Minute, Second. Each value corresponds to the same array index as getFields()

Overrides:
getValues in class AbstractPartial
Returns:
the current values of each field (cloned), largest to smallest

getChronology

public Chronology getChronology()
Gets the chronology of the partial which is never null.

The Chronology is the calculation engine behind the partial and provides conversion and validation of the fields in a particular calendar system.

Specified by:
getChronology in interface ReadablePartial
Returns:
the chronology, never null

setValue

protected void setValue(int index,
                        int value)
Sets the value of the field at the specified index.

In version 2.0 and later, this method copies the array into the original. This is because the instance variable has been changed to be final to satisfy the Java Memory Model. This only impacts subclasses that are mutable.

Parameters:
index - the index
value - the value to set
Throws:
IndexOutOfBoundsException - if the index is invalid

setValues

protected void setValues(int[] values)
Sets the values of all fields.

In version 2.0 and later, this method copies the array into the original. This is because the instance variable has been changed to be final to satisfy the Java Memory Model. This only impacts subclasses that are mutable.

Parameters:
values - the array of values

toString

public String toString(String pattern)
Output the date using the specified format pattern.

Parameters:
pattern - the pattern specification, null means use toString
See Also:
DateTimeFormat

toString

public String toString(String pattern,
                       Locale locale)
                throws IllegalArgumentException
Output the date using the specified format pattern.

Parameters:
pattern - the pattern specification, null means use toString
locale - Locale to use, null means default
Throws:
IllegalArgumentException
See Also:
DateTimeFormat


Copyright © 2002-2012 Joda.org. All Rights Reserved.