/** Return the interval with elements from this not in other; * other must not be totally enclosed (properly contained) * within this, which would result in two disjoint intervals * instead of the single one returned by this method. */ public Interval differenceNotProperlyContained(Interval other) { Interval diff = null; // other.a to left of this.a (or same) if ( other.startsBeforeNonDisjoint(this) ) { diff = Interval.create(Math.max(this.a,other.b+1), this.b); } // other.a to right of this.a else if ( other.startsAfterNonDisjoint(this) ) { diff = Interval.create(this.a, other.a-1); } return diff; }
/** Return the interval with elements from this not in other; * other must not be totally enclosed (properly contained) * within this, which would result in two disjoint intervals * instead of the single one returned by this method. */ public Interval differenceNotProperlyContained(Interval other) { Interval diff = null; // other.a to left of this.a (or same) if ( other.startsBeforeNonDisjoint(this) ) { diff = Interval.create(Math.max(this.a,other.b+1), this.b); } // other.a to right of this.a else if ( other.startsAfterNonDisjoint(this) ) { diff = Interval.create(this.a, other.a-1); } return diff; }
/** Return the interval with elements from this not in other; * other must not be totally enclosed (properly contained) * within this, which would result in two disjoint intervals * instead of the single one returned by this method. */ public Interval differenceNotProperlyContained(Interval other) { Interval diff = null; // other.a to left of this.a (or same) if ( other.startsBeforeNonDisjoint(this) ) { diff = Interval.create(Math.max(this.a,other.b+1), this.b); } // other.a to right of this.a else if ( other.startsAfterNonDisjoint(this) ) { diff = Interval.create(this.a, other.a-1); } return diff; }
/** Return the interval with elements from this not in other; * other must not be totally enclosed (properly contained) * within this, which would result in two disjoint intervals * instead of the single one returned by this method. */ public Interval differenceNotProperlyContained(Interval other) { Interval diff = null; // other.a to left of this.a (or same) if ( other.startsBeforeNonDisjoint(this) ) { diff = Interval.create(Math.max(this.a,other.b+1), this.b); } // other.a to right of this.a else if ( other.startsAfterNonDisjoint(this) ) { diff = Interval.create(this.a, other.a-1); } return diff; }