Java Code Examples for org.joda.time.ReadablePartial#getValue()

The following examples show how to use org.joda.time.ReadablePartial#getValue() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Time_14_BasicMonthOfYearDateTimeField_t.java    From coming with MIT License 6 votes vote down vote up
public int[] add(ReadablePartial partial, int fieldIndex, int[] values, int valueToAdd) {
    // overridden as superclass algorithm can't handle
    // 2004-02-29 + 48 months -> 2008-02-29 type dates
    if (valueToAdd == 0) {
        return values;
    }
    if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) {
        // month is largest field and being added to, such as month-day
        int curMonth0 = partial.getValue(0) - 1;
        int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1;
        return set(partial, 0, values, newMonth);
    }
    if (DateTimeUtils.isContiguous(partial)) {
        long instant = 0L;
        for (int i = 0, isize = partial.size(); i < isize; i++) {
            instant = partial.getFieldType(i).getField(iChronology).set(instant, values[i]);
        }
        instant = add(instant, valueToAdd);
        return iChronology.get(partial, instant);
    } else {
        return super.add(partial, fieldIndex, values, valueToAdd);
    }
}
 
Example 2
Source File: AbstractPartial.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Compares this ReadablePartial with another returning true if the chronology,
 * field types and values are equal.
 *
 * @param partial  an object to check against
 * @return true if fields and values are equal
 */
public boolean equals(Object partial) {
    if (this == partial) {
        return true;
    }
    if (partial instanceof ReadablePartial == false) {
        return false;
    }
    ReadablePartial other = (ReadablePartial) partial;
    if (size() != other.size()) {
        return false;
    }
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getValue(i) != other.getValue(i) || getFieldType(i) != other.getFieldType(i)) {
            return false;
        }
    }
    return FieldUtils.equals(getChronology(), other.getChronology());
}
 
Example 3
Source File: AbstractPartial.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Compares this partial with another returning an integer
 * indicating the order.
 * <p>
 * The fields are compared in order, from largest to smallest.
 * The first field that is non-equal is used to determine the result.
 * <p>
 * The specified object must be a partial instance whose field types
 * match those of this partial.
 * <p>
 * NOTE: Prior to v2.0, the {@code Comparable} interface was only implemented
 * in this class and not in the {@code ReadablePartial} interface.
 *
 * @param other  an object to check against
 * @return negative if this is less, zero if equal, positive if greater
 * @throws ClassCastException if the partial is the wrong class
 *  or if it has field types that don't match
 * @throws NullPointerException if the partial is null
 * @since 1.1
 */
public int compareTo(ReadablePartial other) {
    if (this == other) {
        return 0;
    }
    if (size() != other.size()) {
        throw new ClassCastException("ReadablePartial objects must have matching field types");
    }
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getFieldType(i) != other.getFieldType(i)) {
            throw new ClassCastException("ReadablePartial objects must have matching field types");
        }
    }
    // fields are ordered largest first
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getValue(i) > other.getValue(i)) {
            return 1;
        }
        if (getValue(i) < other.getValue(i)) {
            return -1;
        }
    }
    return 0;
}
 
Example 4
Source File: BasicMonthOfYearDateTimeField.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
public int[] add(ReadablePartial partial, int fieldIndex, int[] values, int valueToAdd) {
    // overridden as superclass algorithm can't handle
    // 2004-02-29 + 48 months -> 2008-02-29 type dates
    if (valueToAdd == 0) {
        return values;
    }
    if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) {
        // month is largest field and being added to, such as month-day
        int curMonth0 = partial.getValue(0) - 1;
        int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1;
        return set(partial, 0, values, newMonth);
    }
    if (DateTimeUtils.isContiguous(partial)) {
        long instant = 0L;
        for (int i = 0, isize = partial.size(); i < isize; i++) {
            instant = partial.getFieldType(i).getField(iChronology).set(instant, values[i]);
        }
        instant = add(instant, valueToAdd);
        return iChronology.get(partial, instant);
    } else {
        return super.add(partial, fieldIndex, values, valueToAdd);
    }
}
 
Example 5
Source File: AbstractPartial.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Compares this ReadablePartial with another returning true if the chronology,
 * field types and values are equal.
 *
 * @param partial  an object to check against
 * @return true if fields and values are equal
 */
public boolean equals(Object partial) {
    if (this == partial) {
        return true;
    }
    if (partial instanceof ReadablePartial == false) {
        return false;
    }
    ReadablePartial other = (ReadablePartial) partial;
    if (size() != other.size()) {
        return false;
    }
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getValue(i) != other.getValue(i) || getFieldType(i) != other.getFieldType(i)) {
            return false;
        }
    }
    return FieldUtils.equals(getChronology(), other.getChronology());
}
 
Example 6
Source File: AbstractPartial.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Compares this partial with another returning an integer
 * indicating the order.
 * <p>
 * The fields are compared in order, from largest to smallest.
 * The first field that is non-equal is used to determine the result.
 * <p>
 * The specified object must be a partial instance whose field types
 * match those of this partial.
 * <p>
 * NOTE: Prior to v2.0, the {@code Comparable} interface was only implemented
 * in this class and not in the {@code ReadablePartial} interface.
 *
 * @param other  an object to check against
 * @return negative if this is less, zero if equal, positive if greater
 * @throws ClassCastException if the partial is the wrong class
 *  or if it has field types that don't match
 * @throws NullPointerException if the partial is null
 * @since 1.1
 */
public int compareTo(ReadablePartial other) {
    if (this == other) {
        return 0;
    }
    if (size() != other.size()) {
        throw new ClassCastException("ReadablePartial objects must have matching field types");
    }
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getFieldType(i) != other.getFieldType(i)) {
            throw new ClassCastException("ReadablePartial objects must have matching field types");
        }
    }
    // fields are ordered largest first
    for (int i = 0, isize = size(); i < isize; i++) {
        if (getValue(i) > other.getValue(i)) {
            return 1;
        }
        if (getValue(i) < other.getValue(i)) {
            return -1;
        }
    }
    return 0;
}
 
Example 7
Source File: BasicMonthOfYearDateTimeField.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
public int[] add(ReadablePartial partial, int fieldIndex, int[] values, int valueToAdd) {
    // overridden as superclass algorithm can't handle
    // 2004-02-29 + 48 months -> 2008-02-29 type dates
    if (valueToAdd == 0) {
        return values;
    }
    if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) {
        // month is largest field and being added to, such as month-day
        int curMonth0 = partial.getValue(0) - 1;
        int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1;
        return set(partial, 0, values, newMonth);
    }
    if (DateTimeUtils.isContiguous(partial)) {
        long instant = 0L;
        for (int i = 0, isize = partial.size(); i < isize; i++) {
            instant = partial.getFieldType(i).getField(iChronology).set(instant, values[i]);
        }
        instant = add(instant, valueToAdd);
        return iChronology.get(partial, instant);
    } else {
        return super.add(partial, fieldIndex, values, valueToAdd);
    }
}