@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else { throw new UnsupportedOperationException("OFFSET not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET_EXACT, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags); } else { throw new UnsupportedOperationException("OFFSET_EXACT not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } };
@Override public Temporal resolve(Time t, int flags) { if (t == null) return this; // No resolving to be done? if (base instanceof PartialTime) { PartialTime pt = (PartialTime) base.resolve(t,flags); List<Temporal> list = pt.toList(); if (list != null && list.size() >= n) { return list.get(n-1); } } else if (base instanceof Duration) { Duration d = ((Duration) base).multiplyBy(n-1); Time temp = t.getRange().begin(); return temp.offset(d,0).reduceGranularityTo(d.getDuration()); } return this; }
@Override public Temporal resolve(Time t, int flags) { if (t == null) return this; // No resolving to be done? if (base instanceof PartialTime) { PartialTime pt = (PartialTime) base.resolve(t,flags); List<Temporal> list = pt.toList(); if (list != null && list.size() >= n) { return list.get(n-1); } } else if (base instanceof Duration) { Duration d = ((Duration) base).multiplyBy(n-1); Time temp = t.getRange().begin(); return temp.offset(d,0).reduceGranularityTo(d.getDuration()); } return this; }
public Temporal resolve(Time t, int flags) { if (t == null) return this; // No resolving to be done? if (base instanceof PartialTime) { PartialTime pt = (PartialTime) base.resolve(t,flags); List<Temporal> list = pt.toList(); if (list != null && list.size() >= n) { return list.get(n-1); } } else if (base instanceof Duration) { Duration d = ((Duration) base).multiplyBy(n-1); Time temp = t.getRange().begin(); return temp.offset(d,0).reduceGranularityTo(d.getDuration()); } return this; }
@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else { throw new UnsupportedOperationException("OFFSET not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2); } else { throw new UnsupportedOperationException("OFFSET not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET_EXACT, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags); } else { throw new UnsupportedOperationException("OFFSET_EXACT not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } };
public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags | RELATIVE_OFFSET_INEXACT); } else { throw new UnsupportedOperationException("OFFSET not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
public Range offset(Duration d, int offsetFlags, int rangeFlags) { Time b2 = begin; if ((rangeFlags & RANGE_OFFSET_BEGIN) != 0) { b2 = (begin != null) ? begin.offset(d,offsetFlags) : null; } Time e2 = end; if ((rangeFlags & RANGE_OFFSET_END) != 0) { e2 = (end != null) ? end.offset(d,offsetFlags) : null; } return new Range(this, b2, e2, duration); }
@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg1 == null) { return new RelativeTime(OFFSET_EXACT, arg2); } if (arg1 instanceof Time && arg2 instanceof Duration) { return ((Time) arg1).offset((Duration) arg2, flags); } else if (arg1 instanceof Range && arg2 instanceof Duration) { return ((Range) arg1).offset((Duration) arg2, flags); } else { throw new UnsupportedOperationException("OFFSET_EXACT not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } };
public Range add(Duration d, int flags) { Duration d2 = duration.add(d); Time b2 = begin; Time e2 = end; if ((flags & RANGE_EXPAND_FIX_BEGIN) == 0) { b2 = (end != null) ? end.offset(d2.multiplyBy(-1),0) : null; } else if ((flags & RANGE_EXPAND_FIX_END) == 0) { e2 = (begin != null) ? begin.offset(d2,0) : null; } return new Range(this, b2, e2, d2); }
public Range offset(Duration d, int offsetFlags, int rangeFlags) { Time b2 = begin; if ((rangeFlags & RANGE_OFFSET_BEGIN) != 0) { b2 = (begin != null) ? begin.offset(d,offsetFlags) : null; } Time e2 = end; if ((rangeFlags & RANGE_OFFSET_END) != 0) { e2 = (end != null) ? end.offset(d,offsetFlags) : null; } return new Range(this, b2, e2, duration); }
public Range add(Duration d, int flags) { Duration d2 = duration.add(d); Time b2 = begin; Time e2 = end; if ((flags & RANGE_EXPAND_FIX_BEGIN) == 0) { b2 = (end != null) ? end.offset(d2.multiplyBy(-1)) : null; } else if ((flags & RANGE_EXPAND_FIX_END) == 0) { e2 = (begin != null) ? begin.offset(d2) : null; } return new Range(this, b2, e2, d2); }
public Range add(Duration d, int flags) { Duration d2 = duration.add(d); Time b2 = begin; Time e2 = end; if ((flags & RANGE_EXPAND_FIX_BEGIN) == 0) { b2 = (end != null) ? end.offset(d2.multiplyBy(-1),0) : null; } else if ((flags & RANGE_EXPAND_FIX_END) == 0) { e2 = (begin != null) ? begin.offset(d2,0) : null; } return new Range(this, b2, e2, d2); }
public Range add(Duration d, int flags) { Duration d2 = duration.add(d); Time b2 = begin; Time e2 = end; if ((flags & RANGE_EXPAND_FIX_BEGIN) == 0) { b2 = (end != null) ? end.offset(d2.multiplyBy(-1),0) : null; } else if ((flags & RANGE_EXPAND_FIX_END) == 0) { e2 = (begin != null) ? begin.offset(d2,0) : null; } return new Range(this, b2, e2, d2); }
public Range offset(Duration d, int offsetFlags, int rangeFlags) { Time b2 = begin; if ((rangeFlags & RANGE_OFFSET_BEGIN) != 0) { b2 = (begin != null) ? begin.offset(d,offsetFlags) : null; } Time e2 = end; if ((rangeFlags & RANGE_OFFSET_END) != 0) { e2 = (end != null) ? end.offset(d,offsetFlags) : null; } return new Range(this, b2, e2, duration); }