diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/LoadTimelinesGroup.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/LoadTimelinesGroup.java index 833287c59..e657a2b3d 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/LoadTimelinesGroup.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/resourceload/LoadTimelinesGroup.java @@ -36,7 +36,9 @@ public class LoadTimelinesGroup { LocalDate start = null; LocalDate end = null; for (LoadTimelinesGroup loadTimelinesGroup : timeLines) { + Validate.notNull(loadTimelinesGroup.getStart()); start = min(start, loadTimelinesGroup.getStart()); + Validate.notNull(loadTimelinesGroup.getEnd()); end = max(end, loadTimelinesGroup.getEnd()); } return new Interval(toDate(start), toDate(end)); @@ -74,11 +76,21 @@ public class LoadTimelinesGroup { List children) { Validate.notNull(principal); Validate.notNull(children); + allChildrenAreNotEmpty(children); this.principal = principal; this.children = Collections .unmodifiableList(new ArrayList(children)); } + private static void allChildrenAreNotEmpty( + List lines) { + for (LoadTimeLine l : lines) { + if (l.isEmpty()) { + throw new IllegalArgumentException(l + " is empty"); + } + } + } + public LoadTimeLine getPrincipal() { return principal; } @@ -114,5 +126,9 @@ public class LoadTimelinesGroup { return result; } + public boolean isEmpty() { + return principal.isEmpty(); + } + }