Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.joda.time.base
Class AbstractPartial

    java.lang.Object
      org.joda.time.base.AbstractPartial

All Implemented Interfaces:
  java.lang.Comparable, ReadablePartial

Direct Known Subclasses:
  BaseLocal, BasePartial, Partial

    public abstract class AbstractPartial

extends java.lang.Object
implements ReadablePartial, java.lang.Comparable

AbstractPartial provides a standard base implementation of most methods in the ReadablePartial interface.

Calculations on are performed using a `Chronology`. This chronology is set to be in the UTC time zone for all calculations.

The methods on this class use `ReadablePartial.size()`, `getField(int, Chronology)` and `ReadablePartial.getValue(int)` to calculate their results. Subclasses may have a better implementation.

AbstractPartial allows subclasses may be mutable and not thread-safe.

Since:
  1.0
Author:
  Stephen Colebourne

Constructor Summary
`protected` | `AbstractPartial()` Constructor.

Method Summary
`int` | `compareTo(java.lang.Object partial)` Compares this partial with another returning an integer indicating the order.
`boolean` | `equals(java.lang.Object partial)` Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.
`int` | `get(DateTimeFieldType type)` Get the value of one of the fields of a datetime.
`DateTimeField` | `getField(int index)` Gets the field at the specifed index.
`protected abstract DateTimeField` | `getField(int index, Chronology chrono)` Gets the field for a specific index in the chronology specified.
`DateTimeField[]` | `getFields()` Gets an array of the fields that this partial supports.
`DateTimeFieldType` | `getFieldType(int index)` Gets the field type at the specifed index.
`DateTimeFieldType[]` | `getFieldTypes()` Gets an array of the field types that this partial supports.
`int[]` | `getValues()` Gets an array of the value of each of the fields that this partial supports.
`int` | `hashCode()` Gets a hash code for the ReadablePartial that is compatible with the equals method.
`int` | `indexOf(DateTimeFieldType type)` Gets the index of the specified field, or -1 if the field is unsupported.
`protected int` | `indexOf(DurationFieldType type)` Gets the index of the first fields to have the specified duration, or -1 if the field is unsupported.
`protected int` | `indexOfSupported(DateTimeFieldType type)` Gets the index of the specified field, throwing an exception if the field is unsupported.
`protected int` | `indexOfSupported(DurationFieldType type)` Gets the index of the first fields to have the specified duration, throwing an exception if the field is unsupported.
`boolean` | `isAfter(ReadablePartial partial)` Is this partial later than the specified partial.
`boolean` | `isBefore(ReadablePartial partial)` Is this partial earlier than the specified partial.
`boolean` | `isEqual(ReadablePartial partial)` Is this partial the same as the specified partial.
`boolean` | `isSupported(DateTimeFieldType type)` Checks whether the field specified is supported by this partial.
`DateTime` | `toDateTime(ReadableInstant baseInstant)` Resolves this partial against another complete instant to create a new full instant.
`java.lang.String` | `toString(DateTimeFormatter formatter)` Uses the specified formatter to convert this partial to a String.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.joda.time.ReadablePartial
`getChronology, getValue, size, toString`

Constructor Detail

### AbstractPartial

    protected AbstractPartial()

  Constructor.

Method Detail

### getField

    protected abstract DateTimeField getField(int index,
                                              Chronology chrono)

  Gets the field for a specific index in the chronology specified.

  This method must not use any instance variables.

  Parameters:
    `index` - the index to retrieve
    `chrono` - the chronology to use
  Returns:
    the field
  Throws:
    `java.lang.IndexOutOfBoundsException` - if the index is invalid

### getFieldType

    public DateTimeFieldType getFieldType(int index)

  Gets the field type at the specifed index.

  Specified by:
    `getFieldType` in interface `ReadablePartial`
  Parameters:
    `index` - the index
  Returns:
    the field type
  Throws:
    `java.lang.IndexOutOfBoundsException` - if the index is invalid

### getFieldTypes

    public DateTimeFieldType[] getFieldTypes()

  Gets an array of the field types that this partial supports.

  The fields are returned largest to smallest, for example Hour, Minute, Second.

  Returns:
    the fields supported in an array that may be altered, largest to smallest

### getField

    public DateTimeField getField(int index)

  Gets the field at the specifed index.

  Specified by:
    `getField` in interface `ReadablePartial`
  Parameters:
    `index` - the index
  Returns:
    the field
  Throws:
    `java.lang.IndexOutOfBoundsException` - if the index is invalid

### getFields

    public DateTimeField[] getFields()

  Gets an array of the fields that this partial supports.

  The fields are returned largest to smallest, for example Hour, Minute, Second.

  Returns:
    the fields supported in an array that may be altered, largest to smallest

### 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()`

  Returns:
    the current values of each field in an array that may be altered, largest to smallest

### get

    public int get(DateTimeFieldType type)

  Get the value of one of the fields of a datetime.

  The field specified must be one of those that is supported by the partial.

  Specified by:
    `get` in interface `ReadablePartial`
  Parameters:
    `type` - a DateTimeFieldType instance that is supported by this partial
  Returns:
    the value of that field
  Throws:
    `java.lang.IllegalArgumentException` - if the field is null or not supported

### isSupported

    public boolean isSupported(DateTimeFieldType type)

  Checks whether the field specified is supported by this partial.

  Specified by:
    `isSupported` in interface `ReadablePartial`
  Parameters:
    `type` - the type to check, may be null which returns false
  Returns:
    true if the field is supported

### indexOf

    public int indexOf(DateTimeFieldType type)

  Gets the index of the specified field, or -1 if the field is unsupported.

  Parameters:
    `type` - the type to check, may be null which returns -1
  Returns:
    the index of the field, -1 if unsupported

### indexOfSupported

    protected int indexOfSupported(DateTimeFieldType type)

  Gets the index of the specified field, throwing an exception if the field is unsupported.

  Parameters:
    `type` - the type to check, not null
  Returns:
    the index of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the field is null or not supported

### indexOf

    protected int indexOf(DurationFieldType type)

  Gets the index of the first fields to have the specified duration, or -1 if the field is unsupported.

  Parameters:
    `type` - the type to check, may be null which returns -1
  Returns:
    the index of the field, -1 if unsupported

### indexOfSupported

    protected int indexOfSupported(DurationFieldType type)

  Gets the index of the first fields to have the specified duration, throwing an exception if the field is unsupported.

  Parameters:
    `type` - the type to check, not null
  Returns:
    the index of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the field is null or not supported

### toDateTime

    public DateTime toDateTime(ReadableInstant baseInstant)

  Resolves this partial against another complete instant to create a new full instant. The combination is performed using the chronology of the specified instant.

  For example, if this partial represents a time, then the result of this method will be the datetime from the specified base instant plus the time from this partial.

  Specified by:
    `toDateTime` in interface `ReadablePartial`
  Parameters:
    `baseInstant` - the instant that provides the missing fields, null means now
  Returns:
    the combined datetime

### equals

    public boolean equals(java.lang.Object partial)

  Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.

  Specified by:
    `equals` in interface `ReadablePartial`
  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `partial` - an object to check against
  Returns:
    true if fields and values are equal

### hashCode

    public int hashCode()

  Gets a hash code for the ReadablePartial that is compatible with the equals method.

  Specified by:
    `hashCode` in interface `ReadablePartial`
  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    a suitable hash code

### compareTo

    public int compareTo(java.lang.Object partial)

  Compares this partial with another returning an integer indicating the order.

  The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.

  The specified object must be a partial instance whose field types match those of this partial.

  NOTE: This implementation violates the Comparable contract. This method will accept any instance of ReadablePartial as input. However, it is possible that some implementations of ReadablePartial exist that do not extend AbstractPartial, and thus will throw a ClassCastException if compared in the opposite direction. The cause of this problem is that ReadablePartial doesn't define the compareTo() method, however we can't change that until v2.0.

  Specified by:
    `compareTo` in interface `java.lang.Comparable`
  Parameters:
    `partial` - an object to check against
  Returns:
    negative if this is less, zero if equal, positive if greater
  Throws:
    `java.lang.ClassCastException` - if the partial is the wrong class or if it has field types that don't match
    `java.lang.NullPointerException` - if the partial is null
  Since:
    1.1

### isAfter

    public boolean isAfter(ReadablePartial partial)

  Is this partial later than the specified partial.

  The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.

  You may not pass null into this method. This is because you need a time zone to accurately determine the current date.

  Parameters:
    `partial` - a partial to check against, must not be null
  Returns:
    true if this date is after the date passed in
  Throws:
    `java.lang.IllegalArgumentException` - if the specified partial is null
    `java.lang.ClassCastException` - if the partial has field types that don't match
  Since:
    1.1

### isBefore

    public boolean isBefore(ReadablePartial partial)

  Is this partial earlier than the specified partial.

  The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.

  You may not pass null into this method. This is because you need a time zone to accurately determine the current date.

  Parameters:
    `partial` - a partial to check against, must not be null
  Returns:
    true if this date is before the date passed in
  Throws:
    `java.lang.IllegalArgumentException` - if the specified partial is null
    `java.lang.ClassCastException` - if the partial has field types that don't match
  Since:
    1.1

### isEqual

    public boolean isEqual(ReadablePartial partial)

  Is this partial the same as the specified partial.

  The fields are compared in order, from largest to smallest. If all fields are equal, the result is true.

  You may not pass null into this method. This is because you need a time zone to accurately determine the current date.

  Parameters:
    `partial` - a partial to check against, must not be null
  Returns:
    true if this date is the same as the date passed in
  Throws:
    `java.lang.IllegalArgumentException` - if the specified partial is null
    `java.lang.ClassCastException` - if the partial has field types that don't match
  Since:
    1.1

### toString

    public java.lang.String toString(DateTimeFormatter formatter)

  Uses the specified formatter to convert this partial to a String.

  Parameters:
    `formatter` - the formatter to use, null means use `toString()`.
  Returns:
    the formatted string
  Since:
    1.1

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD