From ed1b2011b9f3d928a8e14696e671296ecaa94686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sun, 4 Oct 2009 12:06:58 +0200 Subject: [PATCH] Bug 3: Access to screen resource load causes exception. Adding method to know if a LoadTimeLinesGroup is empty or not. Checking children TimeLines are not empty https://naval.igalia.com/bugtracker/show_bug.cgi?id=3 --- .../data/resourceload/LoadTimelinesGroup.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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(); + } + }