From b8bef91385df6b8a696f28a9d6d38cdba184aff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sun, 27 Jun 2010 19:08:23 +0200 Subject: [PATCH] ItEr60S08CUAsignacionRecursosLimitantesItEr59S08: Refactor. Move methods to enum. --- .../LimitingResourceQueueDependency.java | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueDependency.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueDependency.java index 50208ba35..231e4e10c 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueDependency.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueDependency.java @@ -83,6 +83,32 @@ public class LimitingResourceQueueDependency extends BaseEntity { } } + private Dependency.Type getDependencyType() { + return QueueDependencyType.toDependencyType(this); + } + + public boolean modifiesDestinationStart() { + return getDependencyType().modifiesDestinationStart(); + } + + public boolean modifiesDestinationEnd() { + return getDependencyType().modifiesDestinationEnd(); + } + + public DateAndHour calculateDateTargetFrom(DateAndHour previousStartTime, + DateAndHour previousEndTime) { + switch (this) { + case START_END: + case START_START: + return previousStartTime; + case END_END: + case END_START: + return previousEndTime; + default: + throw new RuntimeException("unknown type: " + this); + } + } + }; public static LimitingResourceQueueDependency.QueueDependencyType toQueueDependencyType( @@ -149,32 +175,20 @@ public class LimitingResourceQueueDependency extends BaseEntity { return !hasAsOrigin.isDetached(); } - private Dependency.Type getDependencyType() { - return QueueDependencyType.toDependencyType(type); - } - public boolean modifiesDestinationStart() { - return getDependencyType().modifiesDestinationStart(); + return type.modifiesDestinationStart(); } public boolean modifiesDestinationEnd() { - return getDependencyType().modifiesDestinationEnd(); + return type.modifiesDestinationEnd(); } public DateAndHour getDateFromOrigin() { if (hasAsOrigin.isDetached()) { throw new IllegalStateException("origin detached"); } - switch (type) { - case START_END: - case START_START: - return hasAsOrigin.getStartTime(); - case END_END: - case END_START: - return hasAsOrigin.getEndTime(); - default: - throw new RuntimeException("unknown type: " + type); - } + return type.calculateDateTargetFrom(hasAsOrigin.getStartTime(), hasAsOrigin + .getEndTime()); } public boolean propagatesThrough(LimitingResourceQueueDependency transitive) {