diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/util/Interval.java b/ganttzk/src/main/java/org/zkoss/ganttz/util/Interval.java index b01b69d51..902149bf4 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/util/Interval.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/util/Interval.java @@ -23,8 +23,12 @@ */ package org.zkoss.ganttz.util; +import java.util.Arrays; +import java.util.Collections; import java.util.Date; +import org.apache.commons.lang.Validate; + public class Interval { private final Date start; @@ -79,4 +83,11 @@ public class Interval { private boolean isIncluded(Date date) { return start.compareTo(date) <= 0 && finish.compareTo(date) >= 0; } + + public Interval coalesce(Interval otherInterval) { + Validate.notNull(otherInterval); + return new Interval(Collections.min(Arrays.asList(start, + otherInterval.start)), Collections.max(Arrays.asList(finish, + otherInterval.finish))); + } } \ No newline at end of file