@Override public boolean precedes(final Interval s) { return (getEnd() <= s.getStart()); }
@Override public boolean follows(final Interval s) { return (getStart() >= s.getEnd()); }
@Override public boolean endsEarilerThan(final Interval i) { return getEnd() < i.getEnd(); }
@Override public boolean immediatelyFollows(final Interval s) { return (getStart() == s.getEnd()); }
@Override public boolean immediatelyPrecedes(final Interval s) { return (getEnd() == s.getStart()); }
@Override public boolean startsLaterThan(final Interval i) { return getStart() > i.getStart(); }
@Override public boolean rightAligned(final Interval s) { return (getEnd() == s.getEnd()); }
@Override public boolean leftAligned(final Interval s) { return (getStart() == s.getStart()); }
@Override public boolean endsLaterThan(final Interval i) { return getEnd() > i.getEnd(); }
@Override public boolean startsSameAs(final Interval i) { return getStart() == i.getStart(); }
@Override public boolean endsSameAs(final Interval s) { return getEnd() == s.getEnd(); }
@Override public boolean startsEarilerThan(final Interval s) { return getStart() < s.getStart(); }
@Override public boolean overlaps(final Interval i) { // Cases: // // start end // | | // 1 ####### | // 2 | ####### // 3 #################################### // 4 | ####### | // | | return (((i.getStart() <= getStart()) && (getStart() < i.getEnd())) || // Case 1-3 ((i.getStart() < getEnd()) && (getEnd() <= i.getEnd())) || // Case 1-3 ((getStart() <= i.getStart()) && (i.getEnd() <= getEnd()))); // Case 4 }