From 3243858c41e2d686a330db9fab4afde9593bca17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 6 Oct 2010 23:38:29 +0200 Subject: [PATCH] Convert type of constraintDate of TaskStartConstraint to LocalDate FEA: ItEr61S08TimeUnitConfigurablePlanning --- .../business/orders/entities/OrderElement.java | 3 ++- .../planner/entities/TaskStartConstraint.java | 17 +++++++---------- .../business/planner/entities/Tasks.hbm.xml | 2 +- .../test/planner/entities/TaskElementTest.java | 9 +++++---- .../web/planner/TaskElementAdapter.java | 10 +++++++--- .../web/planner/order/SubcontractModel.java | 4 ++-- .../planner/taskedition/EditTaskController.java | 2 +- .../taskedition/TaskPropertiesController.java | 8 +++++--- 8 files changed, 30 insertions(+), 25 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 4d4066d64..a9f23264f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -834,7 +834,8 @@ public abstract class OrderElement extends IntegrationEntity implements } protected void applyStartConstraintTo(Task task) { - task.getStartConstraint().notEarlierThan(this.getInitDate()); + task.getStartConstraint().notEarlierThan( + LocalDate.fromDateFields(this.getInitDate())); } public Set getDirectCriterionRequirement() { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskStartConstraint.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskStartConstraint.java index c8a6ee6db..74cccc0d8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskStartConstraint.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskStartConstraint.java @@ -19,8 +19,6 @@ */ package org.navalplanner.business.planner.entities; -import java.util.Date; - import org.apache.commons.lang.Validate; import org.joda.time.LocalDate; @@ -33,7 +31,7 @@ public class TaskStartConstraint { private StartConstraintType startConstraintType = StartConstraintType.AS_SOON_AS_POSSIBLE; - private Date constraintDate = null; + private LocalDate constraintDate = null; public TaskStartConstraint() { } @@ -46,26 +44,25 @@ public class TaskStartConstraint { public void explicityMovedTo(LocalDate date) { Validate.notNull(date); startConstraintType = startConstraintType.newTypeAfterMoved(); - constraintDate = date.toDateTimeAtStartOfDay().toDate(); + constraintDate = date; } - public Date getConstraintDate() { - return constraintDate != null ? new Date(constraintDate.getTime()) - : null; + public LocalDate getConstraintDate() { + return constraintDate; } - public void notEarlierThan(Date date) { + public void notEarlierThan(LocalDate date) { Validate.notNull(date); this.constraintDate = date; this.startConstraintType = StartConstraintType.START_NOT_EARLIER_THAN; } - public boolean isValid(StartConstraintType type, Date value) { + public boolean isValid(StartConstraintType type, LocalDate value) { return type != null && type.isAssociatedDateRequired() == (value != null); } - public void update(StartConstraintType type, Date value) { + public void update(StartConstraintType type, LocalDate value) { Validate.isTrue(isValid(type, value)); this.startConstraintType = type; this.constraintDate = value; diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml index ac7c89d7d..ec665ae97 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml @@ -64,7 +64,7 @@ org.navalplanner.business.planner.entities.StartConstraintType - + hasValue(final Date value) { + private static Matcher hasValue(final LocalDate value) { return new BaseMatcher() { @Override public boolean matches(Object object) { if (object instanceof TaskStartConstraint) { TaskStartConstraint startConstraint = (TaskStartConstraint) object; - Date constraintDate = startConstraint.getConstraintDate(); + LocalDate constraintDate = startConstraint + .getConstraintDate(); boolean bothNotNull = value != null && constraintDate != null; return value == constraintDate || bothNotNull diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 99b087761..a8525a5fa 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -111,12 +111,12 @@ public class TaskElementAdapter implements ITaskElementAdapter { return Collections.emptyList(); case START_IN_FIXED_DATE: return Collections.singletonList(DateConstraint - .equalTo(startConstraint.getConstraintDate())); + .equalTo(asDate(startConstraint.getConstraintDate()))); case START_NOT_EARLIER_THAN: return Collections .singletonList(DateConstraint - .biggerOrEqualThan(startConstraint - .getConstraintDate())); + .biggerOrEqualThan(asDate(startConstraint + .getConstraintDate()))); default: throw new RuntimeException("can't handle " + constraintType); } @@ -125,6 +125,10 @@ public class TaskElementAdapter implements ITaskElementAdapter { } } + private static Date asDate(LocalDate date) { + return date.toDateTimeAtStartOfDay().toDate(); + } + @Autowired private IAdHocTransactionService transactionService; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractModel.java index 0b8bc2b79..156d4a30a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/SubcontractModel.java @@ -118,9 +118,9 @@ public class SubcontractModel implements ISubcontractModel { private void convertOnStartOnFixedDate(Task task) { TaskStartConstraint taskConstraint = task.getStartConstraint(); if (taskConstraint.isValid(StartConstraintType.START_IN_FIXED_DATE, - task.getStartDate())) { + task.getIntraDayStartDate().getDate())) { taskConstraint.update(StartConstraintType.START_IN_FIXED_DATE, task - .getStartDate()); + .getIntraDayStartDate().getDate()); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java index 4e47682cf..7b2b64974 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/EditTaskController.java @@ -451,7 +451,7 @@ public class EditTaskController extends GenericForwardComposer { } return ((ITaskLeafConstraint) taskElement).getStartConstraint() - .getConstraintDate(); + .getConstraintDate().toDateTimeAtStartOfDay().toDate(); } private boolean isTaskLeafConstraint() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesController.java index 557f57da9..9b24b0144 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/taskedition/TaskPropertiesController.java @@ -27,6 +27,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import org.joda.time.LocalDate; import org.navalplanner.business.planner.entities.ITaskLeafConstraint; import org.navalplanner.business.planner.entities.StartConstraintType; import org.navalplanner.business.planner.entities.Task; @@ -293,7 +294,8 @@ public class TaskPropertiesController extends GenericForwardComposer { startConstraintDate.setVisible(constraint.isAssociatedDateRequired()); TaskStartConstraint taskStartConstraint = currentTaskElementAsTaskLeafConstraint() .getStartConstraint(); - startConstraintDate.setValue(taskStartConstraint.getConstraintDate()); + startConstraintDate.setValue(taskStartConstraint.getConstraintDate() + .toDateTimeAtStartOfDay().toDate()); } private boolean saveConstraintChanges() { @@ -301,8 +303,8 @@ public class TaskPropertiesController extends GenericForwardComposer { .getStartConstraint(); WebStartConstraintType type = (WebStartConstraintType) startConstraintTypes .getSelectedItemApi().getValue(); - Date inputDate = type.isAssociatedDateRequired() ? startConstraintDate - .getValue() : null; + LocalDate inputDate = type.isAssociatedDateRequired() ? LocalDate + .fromDateFields(startConstraintDate.getValue()) : null; if (taskConstraint.isValid(type.getType(), inputDate)) { taskConstraint.update(type.getType(), inputDate); if (currentContext != null) {