/** * Constructor. * * @param field the field to wrap, like "year()". * @param type the field type this field actually uses * @param divisor divisor, such as 100 years in a century * @throws IllegalArgumentException if divisor is less than two */ public RemainderDateTimeField(DateTimeField field, DateTimeFieldType type, int divisor) { super(field, type); if (divisor < 2) { throw new IllegalArgumentException("The divisor must be at least 2"); } DurationField rangeField = field.getDurationField(); if (rangeField == null) { iRangeField = null; } else { iRangeField = new ScaledDurationField( rangeField, type.getRangeDurationType(), divisor); } iDurationField = field.getDurationField(); iDivisor = divisor; }
/** * Constructor. * * @param field the field to wrap, like "year()". * @param type the field type this field actually uses * @param divisor divisor, such as 100 years in a century * @throws IllegalArgumentException if divisor is less than two */ public RemainderDateTimeField(DateTimeField field, DateTimeFieldType type, int divisor) { super(field, type); if (divisor < 2) { throw new IllegalArgumentException("The divisor must be at least 2"); } DurationField rangeField = field.getDurationField(); if (rangeField == null) { iRangeField = null; } else { iRangeField = new ScaledDurationField( rangeField, type.getRangeDurationType(), divisor); } iDurationField = field.getDurationField(); iDivisor = divisor; }
public static boolean isMoreSpecific(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df2Unit = df2DurationFieldType.getField(chronology); DurationFieldType p = df1.getRangeDurationType(); if (p != null) { DurationField df1Unit = df1DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp < 0) { return true; } } } return false; }
public static boolean isMoreGeneral(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df1Unit = df1DurationFieldType.getField(chronology); DurationFieldType p = df2.getRangeDurationType(); if (p != null) { DurationField df2Unit = df2DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp > 0) { return true; } } } return false; }
@Override public Duration getPeriod() { /* TimeLabel tl = getTimeLabel(); if (tl != null) { return tl.getPeriod(); } */ StandardTemporalType tlt = getStandardTemporalType(); if (tlt != null) { return tlt.getPeriod(); } if (base == null) { return null; } DateTimeFieldType mostGeneral = JodaTimeUtils.getMostGeneral(base); DurationFieldType df = mostGeneral.getRangeDurationType(); // if (df == null) { // df = mostGeneral.getDurationType(); // } if (df != null) { try { return new DurationWithFields(new Period().withField(df, 1)); } catch (Exception ex) { // TODO: Do something intelligent here } } return null; }
/** * Checks if the field type specified is supported by this * local time and chronology. * This can be used to avoid exceptions in {@link #get(DateTimeFieldType)}. * * @param type a field type, usually obtained from DateTimeFieldType * @return true if the field type is supported */ public boolean isSupported(DateTimeFieldType type) { if (type == null) { return false; } if (isSupported(type.getDurationType()) == false) { return false; } DurationFieldType range = type.getRangeDurationType(); return (isSupported(range) || range == DurationFieldType.days()); }
/** * Checks if the field type specified is supported by this * local time and chronology. * This can be used to avoid exceptions in {@link #get(DateTimeFieldType)}. * * @param type a field type, usually obtained from DateTimeFieldType * @return true if the field type is supported */ public boolean isSupported(DateTimeFieldType type) { if (type == null) { return false; } if (isSupported(type.getDurationType()) == false) { return false; } DurationFieldType range = type.getRangeDurationType(); return (isSupported(range) || range == DurationFieldType.days()); }
break; } else if (compare == 0) { if (fieldType.getRangeDurationType() == null) { break; if (loopType.getRangeDurationType() == null) { continue; DurationField rangeField = fieldType.getRangeDurationType().getField(iChronology); DurationField loopRangeField = loopType.getRangeDurationType().getField(iChronology); if (rangeField.compareTo(loopRangeField) > 0) { break;
break; } else if (compare == 0) { if (fieldType.getRangeDurationType() == null) { break; if (loopType.getRangeDurationType() == null) { continue; DurationField rangeField = fieldType.getRangeDurationType().getField(iChronology); DurationField loopRangeField = loopType.getRangeDurationType().getField(iChronology); if (rangeField.compareTo(loopRangeField) > 0) { break;
} else if (compare == 0) { if (lastUnitField.equals(loopUnitField)) { DurationFieldType lastRangeType = types[i - 1].getRangeDurationType(); DurationFieldType loopRangeType = loopType.getRangeDurationType(); if (lastRangeType == null) { if (loopRangeType == null) {
} else if (compare == 0) { if (lastUnitField.equals(loopUnitField)) { DurationFieldType lastRangeType = types[i - 1].getRangeDurationType(); DurationFieldType loopRangeType = loopType.getRangeDurationType(); if (lastRangeType == null) { if (loopRangeType == null) {
if (base != null) { DateTimeFieldType mostGeneral = JodaTimeUtils.getMostGeneral(base); DurationFieldType df = mostGeneral.getRangeDurationType(); if (df == null) { df = mostGeneral.getDurationType();
/** * Constructor. * * @param field the field to wrap, like "year()". * @param type the field type this field actually uses * @param divisor divisor, such as 100 years in a century * @throws IllegalArgumentException if divisor is less than two */ public RemainderDateTimeField(DateTimeField field, DateTimeFieldType type, int divisor) { super(field, type); if (divisor < 2) { throw new IllegalArgumentException("The divisor must be at least 2"); } DurationField rangeField = field.getDurationField(); if (rangeField == null) { iRangeField = null; } else { iRangeField = new ScaledDurationField( rangeField, type.getRangeDurationType(), divisor); } iDivisor = divisor; }
/** * Checks if the field type specified is supported by this * local time and chronology. * This can be used to avoid exceptions in {@link #get(DateTimeFieldType)}. * * @param type a field type, usually obtained from DateTimeFieldType * @return true if the field type is supported */ public boolean isSupported(DateTimeFieldType type) { if (type == null) { return false; } if (isSupported(type.getDurationType()) == false) { return false; } DurationFieldType range = type.getRangeDurationType(); return (isSupported(range) || range == DurationFieldType.days()); }
types[i - 1].getName() + " < " + loopType.getName()); } else if (compare == 0) { if (types[i - 1].getRangeDurationType() == null) { if (loopType.getRangeDurationType() == null) { throw new IllegalArgumentException("Types array must not contain duplicate: " + loopType.getName()); if (loopType.getRangeDurationType() == null) { throw new IllegalArgumentException("Types array must be in order largest-smallest: " + types[i - 1].getName() + " < " + loopType.getName()); DurationField lastRangeField = types[i - 1].getRangeDurationType().getField(iChronology); DurationField loopRangeField = loopType.getRangeDurationType().getField(iChronology); if (lastRangeField.compareTo(loopRangeField) < 0) { throw new IllegalArgumentException("Types array must be in order largest-smallest: " +
break; } else if (compare == 0) { DurationField rangeField = fieldType.getRangeDurationType().getField(iChronology); DurationField loopRangeField = loopType.getRangeDurationType().getField(iChronology); if (rangeField.compareTo(loopRangeField) > 0) { break;
public static boolean isMoreSpecific(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df2Unit = df2DurationFieldType.getField(chronology); DurationFieldType p = df1.getRangeDurationType(); if (p != null) { DurationField df1Unit = df1DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp < 0) { return true; } } } return false; }
public static boolean isMoreSpecific(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df2Unit = df2DurationFieldType.getField(chronology); DurationFieldType p = df1.getRangeDurationType(); if (p != null) { DurationField df1Unit = df1DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp < 0) { return true; } } } return false; }
public static boolean isMoreSpecific(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df2Unit = df2DurationFieldType.getField(chronology); DurationFieldType p = df1.getRangeDurationType(); if (p != null) { DurationField df1Unit = df1DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp < 0) { return true; } } } return false; }
public static boolean isMoreGeneral(DateTimeFieldType df1, DateTimeFieldType df2, Chronology chronology) { DurationFieldType df1DurationFieldType = df1.getDurationType(); DurationFieldType df2DurationFieldType = df2.getDurationType(); if (!df2DurationFieldType.equals(df1DurationFieldType)) { DurationField df1Unit = df1DurationFieldType.getField(chronology); DurationFieldType p = df2.getRangeDurationType(); if (p != null) { DurationField df2Unit = df2DurationFieldType.getField(chronology); int cmp = df1Unit.compareTo(df2Unit); if (cmp > 0) { return true; } } } return false; }