@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg2 == null) { return arg1; } Temporal arg2Prev = arg2.prev(); if (arg1 == null || arg2Prev == null) { return arg2Prev; } if (arg1 instanceof Time) { // TODO: flags? Temporal resolved = arg2Prev.resolve((Time) arg1, 0 /*RESOLVE_TO_PAST */); return resolved; } else { throw new UnsupportedOperationException("PREV not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
@Override public Temporal apply(Temporal arg1, Temporal arg2, int flags) { if (arg2 == null) { return arg1; } Temporal arg2Next = arg2.next(); if (arg1 == null || arg2Next == null) { return arg2Next; } if (arg1 instanceof Time) { // TODO: flags? Temporal resolved = arg2Next.resolve((Time) arg1, 0 /* RESOLVE_TO_FUTURE */); return resolved; } else { throw new UnsupportedOperationException("NEXT 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(THIS, arg2, flags); } if (arg1 instanceof Time) { if (arg2 instanceof Duration) { return ((Duration) arg2).toTime((Time) arg1, flags); } else { // TODO: flags? return arg2.resolve((Time) arg1, flags | RESOLVE_TO_THIS); } } else { throw new UnsupportedOperationException("THIS not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
public abstract Temporal resolve(Time refTime, int flags);
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 apply(Temporal arg1, Temporal arg2, int flags) { if (arg2 == null) { return arg1; } Temporal arg2Next = arg2.next(); if (arg1 == null || arg2Next == null) { return arg2Next; } if (arg1 instanceof Time) { // TODO: flags? Temporal resolved = arg2Next.resolve((Time) arg1, 0 /* RESOLVE_TO_FUTURE */); return resolved; } else { throw new UnsupportedOperationException("NEXT not implemented for arg1=" + arg1.getClass() + ", arg2=" + arg2.getClass()); } } },
@Override public Temporal resolve(Time refTime, int flags) { Temporal[] newTemporals = new Temporal[temporals.size()]; int i = 0; for (Temporal t : temporals) { newTemporals[i] = t.resolve(refTime, flags); i++; } return new ExplicitTemporalSet(newTemporals); }
public Temporal resolve(Time refTime, int flags) { Temporal[] newTemporals = new Temporal[temporals.size()]; int i = 0; for (Temporal t : temporals) { newTemporals[i] = t.resolve(refTime, flags); i++; } return new ExplicitTemporalSet(newTemporals); }
public Temporal resolve(Time refTime, int flags) { Range resolvedOccursIn = (occursIn != null) ? occursIn.resolve(refTime, flags) : null; Temporal resolvedBase = (base != null) ? base.resolve(null, 0) : null; return new PeriodicTemporalSet(this, resolvedBase, this.periodicity, resolvedOccursIn, this.quant, this.freq); }
public Temporal resolve(Time refTime, int flags) { Temporal[] newTemporals = new Temporal[temporals.size()]; int i = 0; for (Temporal t : temporals) { newTemporals[i] = t.resolve(refTime, flags); i++; } return new ExplicitTemporalSet(newTemporals); }
public Temporal resolve(Time refTime, int flags) { Range resolvedOccursIn = (occursIn != null) ? occursIn.resolve(refTime, flags) : null; Temporal resolvedBase = (base != null) ? base.resolve(null, 0) : null; return new PeriodicTemporalSet(this, resolvedBase, this.periodicity, resolvedOccursIn, this.quant, this.freq); }
@Override public Temporal resolve(Time refTime, int flags) { Range resolvedOccursIn = (occursIn != null) ? occursIn.resolve(refTime, flags) : null; Temporal resolvedBase = (base != null) ? base.resolve(null, 0) : null; return new PeriodicTemporalSet(this, resolvedBase, this.periodicity, resolvedOccursIn, this.quant, this.freq); }
t = t.addModApprox(mod, approx); if (!this.equals(t)) { return t.resolve(refTime, flags); } else {
} else { Temporal resolvedThis = arg2.resolve(t, RESOLVE_TO_PAST); if (resolvedThis != null) { if (resolvedThis instanceof Time) {
} else { Temporal resolvedThis = arg2.resolve(t, RESOLVE_TO_FUTURE); if (resolvedThis != null) { if (resolvedThis instanceof Time) {
private void resolveTimeExpression(CoreMap annotation, TimeExpression te, SUTime.Time docDate) { SUTime.Temporal temporal = te.getTemporal(); if (temporal != null) { // TODO: use correct time for anchor try { int flags = timexPatterns.determineRelFlags(annotation, te); //int flags = 0; SUTime.Temporal grounded = temporal.resolve(docDate, flags); if (grounded == null) { logger.debug("Error resolving " + temporal + ", using docDate=" + docDate); } if (grounded != temporal) { te.origTemporal = temporal; te.setTemporal(grounded); } } catch (Exception ex) { if (options.verbose) { logger.warn("Error resolving " + temporal, ex); logger.warn(ex); } } } }
@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 abstract Temporal resolve(Time refTime, int flags);
@Override public Temporal resolve(Time refTime, int flags) { Range resolvedOccursIn = (occursIn != null) ? occursIn.resolve(refTime, flags) : null; Temporal resolvedBase = (base != null) ? base.resolve(null, 0) : null; return new PeriodicTemporalSet(this, resolvedBase, this.periodicity, resolvedOccursIn, this.quant, this.freq); }
@Override public Temporal resolve(Time refTime, int flags) { Temporal[] newTemporals = new Temporal[temporals.size()]; int i = 0; for (Temporal t : temporals) { newTemporals[i] = t.resolve(refTime, flags); i++; } return new ExplicitTemporalSet(newTemporals); }