Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Copyright 2001-2013 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;
 
Wraps another field such that zero values are replaced with one more than it's maximum. This is particularly useful for implementing an clockhourOfDay field, where the midnight value of 0 is replaced with 24.

ZeroIsMaxDateTimeField is thread-safe and immutable.

Author(s):
Brian S O'Neill
Since:
1.0
 
 public final class ZeroIsMaxDateTimeField extends DecoratedDateTimeField {
 
     @SuppressWarnings("unused")
     private static final long serialVersionUID = 961749798233026866L;

    
Constructor.

Parameters:
field the base field
type the field type this field will actually use
Throws:
java.lang.IllegalArgumentException if wrapped field's minimum value is not zero
 
     public ZeroIsMaxDateTimeField(DateTimeField fieldDateTimeFieldType type) {
         super(fieldtype);
         if (field.getMinimumValue() != 0) {
             throw new IllegalArgumentException("Wrapped field's minumum value must be zero");
         }
     }
 
     public int get(long instant) {
         int value = getWrappedField().get(instant);
         if (value == 0) {
             value = getMaximumValue();
         }
         return value;
     }
 
     public long add(long instantint value) {
         return getWrappedField().add(instantvalue);
     }
 
     public long add(long instantlong value) {
         return getWrappedField().add(instantvalue);
     }
 
     public long addWrapField(long instantint value) {
         return getWrappedField().addWrapField(instantvalue);
     }
 
     public int[] addWrapField(ReadablePartial instantint fieldIndexint[] valuesint valueToAdd) {
         return getWrappedField().addWrapField(instantfieldIndexvaluesvalueToAdd);
     }
 
     public int getDifference(long minuendInstantlong subtrahendInstant) {
         return getWrappedField().getDifference(minuendInstantsubtrahendInstant);
     }
 
     public long getDifferenceAsLong(long minuendInstantlong subtrahendInstant) {
         return getWrappedField().getDifferenceAsLong(minuendInstantsubtrahendInstant);
     }
 
     public long set(long instantint value) {
         int max = getMaximumValue();
         FieldUtils.verifyValueBounds(thisvalue, 1, max);
         if (value == max) {
             value = 0;
         }
         return getWrappedField().set(instantvalue);
     }
 
     public boolean isLeap(long instant) {
         return getWrappedField().isLeap(instant);
     }
 
     public int getLeapAmount(long instant) {
         return getWrappedField().getLeapAmount(instant);
     }
        return getWrappedField().getLeapDurationField();
    }

    
Always returns 1.

Returns:
the minimum value of 1
    public int getMinimumValue() {
        return 1;
    }

    
Always returns 1.

Returns:
the minimum value of 1
    public int getMinimumValue(long instant) {
        return 1;
    }

    
Always returns 1.

Returns:
the minimum value of 1
    public int getMinimumValue(ReadablePartial instant) {
        return 1;
    }

    
Always returns 1.

Returns:
the minimum value of 1
    public int getMinimumValue(ReadablePartial instantint[] values) {
        return 1;
    }

    
Get the maximum value for the field, which is one more than the wrapped field's maximum value.

Returns:
the maximum value
    public int getMaximumValue() {
        return getWrappedField().getMaximumValue() + 1;
    }

    
Get the maximum value for the field, which is one more than the wrapped field's maximum value.

Returns:
the maximum value
    public int getMaximumValue(long instant) {
        return getWrappedField().getMaximumValue(instant) + 1;
    }

    
Get the maximum value for the field, which is one more than the wrapped field's maximum value.

Returns:
the maximum value
    public int getMaximumValue(ReadablePartial instant) {
        return getWrappedField().getMaximumValue(instant) + 1;
    }

    
Get the maximum value for the field, which is one more than the wrapped field's maximum value.

Returns:
the maximum value
    public int getMaximumValue(ReadablePartial instantint[] values) {
        return getWrappedField().getMaximumValue(instantvalues) + 1;
    }
    public long roundFloor(long instant) {
        return getWrappedField().roundFloor(instant);
    }
    public long roundCeiling(long instant) {
        return getWrappedField().roundCeiling(instant);
    }
    public long roundHalfFloor(long instant) {
        return getWrappedField().roundHalfFloor(instant);
    }
    public long roundHalfCeiling(long instant) {
        return getWrappedField().roundHalfCeiling(instant);
    }
    public long roundHalfEven(long instant) {
        return getWrappedField().roundHalfEven(instant);
    }
    public long remainder(long instant) {
        return getWrappedField().remainder(instant);
    }
New to GrepCode? Check out our FAQ X