Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Copyright 2001-2005 Stephen Colebourne
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  *  Unless required by applicable law or agreed to in writing, software
  *  distributed under the License is distributed on an "AS IS" BASIS,
  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
 package org.joda.time.field;
 
Duration field class representing a field with a fixed unit length.

PreciseDurationField is thread-safe and immutable.

Author(s):
Stephen Colebourne
Brian S O'Neill
Since:
1.0
 
 public class PreciseDurationField extends BaseDurationField {
     
     private static final long serialVersionUID = -8346152187724495365L;

    
The size of the unit
 
     private final long iUnitMillis;

    
Constructor.

Parameters:
type the field type
unitMillis the unit milliseconds
     
     public PreciseDurationField(DurationFieldType typelong unitMillis) {
         super(type);
          = unitMillis;
     }
     
     //------------------------------------------------------------------------
     
This field is precise.

Returns:
true always
 
     public final boolean isPrecise() {
         return true;
     }
    
    
Returns the amount of milliseconds per unit value of this field.

Returns:
the unit size of this field, in milliseconds
 
     public final long getUnitMillis() {
         return ;
     }
 
     //------------------------------------------------------------------------
     
Get the value of this field from the milliseconds.

Parameters:
duration the milliseconds to query, which may be negative
instant ignored
Returns:
the value of the field, in the units of the field, which may be negative
 
     public long getValueAsLong(long durationlong instant) {
         return duration / ;  // safe
     }

    
Get the millisecond duration of this field from its value.

Parameters:
value the value of the field, which may be negative
instant ignored
Returns:
the milliseconds that the field represents, which may be negative
 
     public long getMillis(int valuelong instant) {
         return value * ;  // safe
     }

    
Get the millisecond duration of this field from its value.

Parameters:
value the value of the field, which may be negative
instant ignored
Returns:
the milliseconds that the field represents, which may be negative
 
     public long getMillis(long valuelong instant) {
        return FieldUtils.safeMultiply(value);
    }
    public long add(long instantint value) {
        long addition = value * ;  // safe
        return FieldUtils.safeAdd(instantaddition);
    }
    public long add(long instantlong value) {
        long addition = FieldUtils.safeMultiply(value);
        return FieldUtils.safeAdd(instantaddition);
    }
    public long getDifferenceAsLong(long minuendInstantlong subtrahendInstant) {
        long difference = FieldUtils.safeSubtract(minuendInstantsubtrahendInstant);
        return difference / ;
    }
    //-----------------------------------------------------------------------
    
Compares this duration field to another. Two fields are equal if of the same type and duration.

Parameters:
obj the object to compare to
Returns:
if equal
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        } else if (obj instanceof PreciseDurationField) {
            PreciseDurationField other = (PreciseDurationFieldobj;
            return (getType() == other.getType()) && ( == other.iUnitMillis);
        }
        return false;
    }

    
Gets a hash code for this instance.

Returns:
a suitable hashcode
    public int hashCode() {
        long millis = ;
        int hash = (int) (millis ^ (millis >>> 32));
        hash += getType().hashCode();
        return hash;
    }
New to GrepCode? Check out our FAQ X