From a06aea5656e689b3f25eb24289d2dc25492b836d Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Tue, 27 Apr 2010 17:16:18 +0200 Subject: [PATCH] ItEr56S12CUAsignacionRecursosLimitantesItEr55S16: Add QueuePosition * Keep LimitingResourceQueueElement in LimitingResourceQueue sorted --- .../LimitingResourceQueueElement.java | 44 ++++++++++++++- .../planner/entities/QueuePosition.java | 56 +++++++++++++++++++ .../entities/LimitingResourceQueue.java | 6 +- .../entities/ResourceAllocations.hbm.xml | 11 ++++ .../resources/entities/Resources.hbm.xml | 3 +- 5 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/QueuePosition.java diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/LimitingResourceQueueElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/LimitingResourceQueueElement.java index e79b41db8..09a974f0e 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/LimitingResourceQueueElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/LimitingResourceQueueElement.java @@ -20,8 +20,12 @@ package org.navalplanner.business.planner.entities; +import static org.navalplanner.business.i18n.I18nHelper._; + import java.util.Date; +import org.apache.commons.lang.Validate; +import org.joda.time.LocalDate; import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.resources.entities.LimitingResourceQueue; @@ -38,7 +42,11 @@ public class LimitingResourceQueueElement extends BaseEntity { private Date earlierStartDateBecauseOfGantt; - public Date getEarlierStartDateBecauseOfGantt() { + private QueuePosition startQueuePosition; + + private QueuePosition endQueuePosition; + + public Date getEarlierStartDateBecauseOfGantt() { return earlierStartDateBecauseOfGantt; } @@ -47,7 +55,7 @@ public class LimitingResourceQueueElement extends BaseEntity { this.earlierStartDateBecauseOfGantt = earlierStartDateBecauseOfGantt; } -public static LimitingResourceQueueElement create() { + public static LimitingResourceQueueElement create() { return create(new LimitingResourceQueueElement()); } @@ -71,4 +79,36 @@ public static LimitingResourceQueueElement create() { this.limitingResourceQueue = limitingResourceQueue; } + public LocalDate getStartDate() { + return startQueuePosition.getDate(); + } + + public void setStartDate(LocalDate date) { + startQueuePosition.setDate(date); + } + + public int getStartHour() { + return startQueuePosition.getHour(); + } + + public void setStartHour(int hour) { + startQueuePosition.setHour(hour); + } + + public LocalDate getEndDate() { + return endQueuePosition.getDate(); + } + + public void setEndDate(LocalDate date) { + endQueuePosition.setDate(date); + } + + public int getEndHour() { + return endQueuePosition.getHour(); + } + + public void setEndHour(int hour) { + endQueuePosition.setHour(hour); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/QueuePosition.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/QueuePosition.java new file mode 100644 index 000000000..1ab54b032 --- /dev/null +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/QueuePosition.java @@ -0,0 +1,56 @@ +/* + * This file is part of NavalPlan + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.navalplanner.business.planner.entities; + +import static org.navalplanner.business.i18n.I18nHelper._; + +import org.apache.commons.lang.Validate; +import org.joda.time.LocalDate; + +/** + * + * @author Diego Pino Garcia + * + */ +public class QueuePosition { + + private LocalDate date; + + private int hour = 0; + + public LocalDate getDate() { + return date; + } + + public void setDate(LocalDate date) { + this.date = date; + } + + public int getHour() { + return hour; + } + + public void setHour(int hour) { + Validate.isTrue(hour >= 0 && hour <= 23, _("Hour should be a value between 0 and 23")); + this.hour = hour; + } + +} 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 33a9857cd..252741e1e 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 @@ -21,9 +21,11 @@ package org.navalplanner.business.resources.entities; import java.util.Collections; -import java.util.HashSet; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import org.apache.commons.lang.math.NumberUtils; import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.planner.entities.LimitingResourceQueueElement; @@ -37,7 +39,7 @@ public class LimitingResourceQueue extends BaseEntity { private Resource resource; private Set limitingResourceQueueElements = - new HashSet(); + new TreeSet(); public static LimitingResourceQueue create() { return create(new LimitingResourceQueue()); diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml index 80b6ae38a..6156fbc8f 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml @@ -60,6 +60,7 @@ + @@ -74,6 +75,16 @@ + + + + + + + + + + diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml index 39ec60487..1772c9032 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml @@ -78,7 +78,8 @@ - +