From 76fcb59dadd9c9c1949b797e5e82c666439984a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 19 Jan 2011 17:05:35 +0100 Subject: [PATCH] Extract method FEA: ItEr68OTS05IntroducionLimiteSobreasignacionCalendarios --- .../calendars/entities/AvailabilityTimeLine.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java index 4e3d7f631..53d36a19f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java @@ -352,19 +352,22 @@ public class AvailabilityTimeLine { if (invalids.isEmpty()) { return true; } + Interval possibleInterval = findPossibleIntervalFor(date); + return (possibleInterval == null || !possibleInterval.includes(date)) + && additionalRestriction.isValid(date); + } + + private Interval findPossibleIntervalFor(LocalDate date) { Interval point = Interval.point(date); int binarySearch = Collections.binarySearch(invalids, point); if (binarySearch >= 0) { - Interval interval = invalids.get(binarySearch); - return !interval.includes(date); + return invalids.get(binarySearch); } else { int insertionPoint = insertionPoint(binarySearch); if (insertionPoint == 0) { - return true; + return null; } - Interval interval = invalids - .get(insertionPoint - 1); - return !interval.includes(date); + return invalids.get(insertionPoint - 1); } }