PreciseDurationDateTimeField.java 2.07 KB
package org.joda.time.field;

import org.joda.time.DateTimeFieldType;
import org.joda.time.DurationField;

public abstract class PreciseDurationDateTimeField
  extends BaseDateTimeField
{
  final long a;
  private final DurationField b;
  
  public PreciseDurationDateTimeField(DateTimeFieldType paramDateTimeFieldType, DurationField paramDurationField)
  {
    super(paramDateTimeFieldType);
    if (!paramDurationField.isPrecise()) {
      throw new IllegalArgumentException("Unit duration field must be precise");
    }
    this.a = paramDurationField.getUnitMillis();
    if (this.a < 1L) {
      throw new IllegalArgumentException("The unit milliseconds must be at least 1");
    }
    this.b = paramDurationField;
  }
  
  public DurationField getDurationField()
  {
    return this.b;
  }
  
  public int getMaximumValueForSet(long paramLong, int paramInt)
  {
    return getMaximumValue(paramLong);
  }
  
  public int getMinimumValue()
  {
    return 0;
  }
  
  public final long getUnitMillis()
  {
    return this.a;
  }
  
  public boolean isLenient()
  {
    return false;
  }
  
  public long remainder(long paramLong)
  {
    if (paramLong >= 0L) {
      return paramLong % this.a;
    }
    return (paramLong + 1L) % this.a + this.a - 1L;
  }
  
  public long roundCeiling(long paramLong)
  {
    if (paramLong > 0L)
    {
      paramLong -= 1L;
      return paramLong - paramLong % this.a + this.a;
    }
    return paramLong - paramLong % this.a;
  }
  
  public long roundFloor(long paramLong)
  {
    if (paramLong >= 0L) {
      return paramLong - paramLong % this.a;
    }
    paramLong = 1L + paramLong;
    return paramLong - paramLong % this.a - this.a;
  }
  
  public long set(long paramLong, int paramInt)
  {
    FieldUtils.verifyValueBounds(this, paramInt, getMinimumValue(), getMaximumValueForSet(paramLong, paramInt));
    return (paramInt - get(paramLong)) * this.a + paramLong;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/joda/time/field/PreciseDurationDateTimeField.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */