/** * <p>Tells this generator to produce values within a specified * {@linkplain InRange#min() minimum} and/or {@linkplain InRange#max() * maximum}, inclusive, with uniform distribution.</p> * * <p>If an endpoint of the range is not specified, the generator will use * ZoneOffsets with values of either {@code ZoneOffset#MIN} or * {@code ZoneOffset#MAX} as appropriate.</p> * * <p>{@linkplain InRange#format()} is ignored. ZoneOffsets are always * parsed using their zone id.</p> * * @see ZoneOffset#of(String) * @param range annotation that gives the range's constraints */ public void configure(InRange range) { if (!defaultValueOf(InRange.class, "min").equals(range.min())) min = ZoneOffset.of(range.min()); if (!defaultValueOf(InRange.class, "max").equals(range.max())) max = ZoneOffset.of(range.max()); if (min.compareTo(max) > 0) throw new IllegalArgumentException(String.format("bad range, %s > %s", min, max)); }
@Override public int compare(ZoneOffset zoneOffset1, ZoneOffset zoneOffset2) { return zoneOffset1.compareTo(zoneOffset2); }
@Override public int compare(ZoneOffset zoneOffset1, ZoneOffset zoneOffset2) { return zoneOffset1.compareTo(zoneOffset2); }
/** * Returns a string describing this object. * * @return a string for debugging, not null */ @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("TransitionRule[") .append(offsetBefore.compareTo(offsetAfter) > 0 ? "Gap " : "Overlap ") .append(offsetBefore).append(" to ").append(offsetAfter).append(", "); if (dow != null) { if (dom == -1) { buf.append(dow.name()).append(" on or before last day of ").append(month.name()); } else if (dom < 0) { buf.append(dow.name()).append(" on or before last day minus ").append(-dom - 1).append(" of ").append(month.name()); } else { buf.append(dow.name()).append(" on or after ").append(month.name()).append(' ').append(dom); } } else { buf.append(month.name()).append(' ').append(dom); } buf.append(" at ").append(timeEndOfDay ? "24:00" : time.toString()) .append(" ").append(timeDefinition) .append(", standard offset ").append(standardOffset) .append(']'); return buf.toString(); }
/** * <p>Tells this generator to produce values within a specified * {@linkplain InRange#min() minimum} and/or {@linkplain InRange#max() * maximum}, inclusive, with uniform distribution.</p> * * <p>If an endpoint of the range is not specified, the generator will use * ZoneOffsets with values of either {@code ZoneOffset#MIN} or * {@code ZoneOffset#MAX} as appropriate.</p> * * <p>{@linkplain InRange#format()} is ignored. ZoneOffsets are always * parsed using their zone id.</p> * * @see ZoneOffset#of(String) * @param range annotation that gives the range's constraints */ public void configure(InRange range) { if (!defaultValueOf(InRange.class, "min").equals(range.min())) min = ZoneOffset.of(range.min()); if (!defaultValueOf(InRange.class, "max").equals(range.max())) max = ZoneOffset.of(range.max()); if (min.compareTo(max) > 0) throw new IllegalArgumentException(String.format("bad range, %s > %s", min, max)); }