// functions.
return infinity();
}
public Object visit(Meets meets, Object data) {
TemporalConstraints leftResult = (TemporalConstraints) meets
.getExpression1().accept(this, data);
TemporalConstraints rightResult = (TemporalConstraints) meets
.getExpression2().accept(this, data);
if (leftResult.isEmpty())
return toSet(new TemporalRange(TemporalRange.START_TIME,
rightResult.getMinOr(TemporalRange.END_TIME)));
if (rightResult.isEmpty())
return toSet(new TemporalRange(
leftResult.getMaxOr(TemporalRange.START_TIME),
TemporalRange.END_TIME));
// Looks like infinity. This case occurs if both sides are parameters or
// functions.
return toSet(new TemporalRange(
leftResult.getMinOr(TemporalRange.START_TIME),
rightResult.getMaxOr(TemporalRange.END_TIME)));
}