diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java index 5b5dd05f3..b430be1d4 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java @@ -23,6 +23,7 @@ package org.navalplanner.business.planner.limiting.entities; import java.math.BigDecimal; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashSet; import java.util.List; @@ -39,6 +40,7 @@ import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.SpecificResourceAllocation; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.LimitingResourceQueue; +import org.navalplanner.business.resources.entities.LimitingResourceQueueElementComparator; import org.navalplanner.business.resources.entities.Resource; /** @@ -49,6 +51,10 @@ import org.navalplanner.business.resources.entities.Resource; */ public class LimitingResourceQueueElement extends BaseEntity { + public static Comparator byStartTimeComparator() { + return new LimitingResourceQueueElementComparator(); + } + private ResourceAllocation resourceAllocation; private LimitingResourceQueue limitingResourceQueue; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java index bb215d70f..dbcddd6e8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java @@ -29,9 +29,9 @@ import java.util.TreeSet; import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.planner.limiting.entities.DateAndHour; import org.navalplanner.business.planner.limiting.entities.Gap; +import org.navalplanner.business.planner.limiting.entities.Gap.GapOnQueue; import org.navalplanner.business.planner.limiting.entities.InsertionRequirements; import org.navalplanner.business.planner.limiting.entities.LimitingResourceQueueElement; -import org.navalplanner.business.planner.limiting.entities.Gap.GapOnQueue; /** * @@ -115,4 +115,14 @@ public class LimitingResourceQueue extends BaseEntity { return result; } + public List getElementsAfter( + LimitingResourceQueueElement element) { + List queueElements = new ArrayList( + limitingResourceQueueElements); + int position = Collections.binarySearch(queueElements, element, + LimitingResourceQueueElement.byStartTimeComparator()); + assert position >= 0 : "the element must be in the list"; + return queueElements.subList(position + 1, queueElements.size()); + } + }