Ejemplo n.º 1
0
 /**
  * Merges the fields from another period.
  *
  * @param values the array of values to update
  * @param period the period to add from, not null
  * @return the updated values
  * @throws IllegalArgumentException if an unsupported field's value is non-zero
  */
 protected int[] mergePeriodInto(int[] values, ReadablePeriod period) {
   for (int i = 0, isize = period.size(); i < isize; i++) {
     DurationFieldType type = period.getFieldType(i);
     int value = period.getValue(i);
     checkAndUpdate(type, values, value);
   }
   return values;
 }
Ejemplo n.º 2
0
 /** Private method called from constructor. */
 private void setPeriodInternal(ReadablePeriod period) {
   int[] newValues = new int[size()];
   for (int i = 0, isize = period.size(); i < isize; i++) {
     DurationFieldType type = period.getFieldType(i);
     int value = period.getValue(i);
     checkAndUpdate(type, newValues, value);
   }
   iValues = newValues;
 }
Ejemplo n.º 3
0
 /**
  * Adds the fields from another period.
  *
  * @param values the array of values to update
  * @param period the period to add from, not null
  * @return the updated values
  * @throws IllegalArgumentException if an unsupported field's value is non-zero
  */
 protected int[] addPeriodInto(int[] values, ReadablePeriod period) {
   for (int i = 0, isize = period.size(); i < isize; i++) {
     DurationFieldType type = period.getFieldType(i);
     int value = period.getValue(i);
     if (value != 0) {
       int index = indexOf(type);
       if (index == -1) {
         throw new IllegalArgumentException(
             "Period does not support field '" + type.getName() + "'");
       } else {
         values[index] = FieldUtils.safeAdd(getValue(index), value);
       }
     }
   }
   return values;
 }