From 27257c17ff01341f336fa7feaba66379672732ff Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 1 Sep 2011 14:10:44 +0200 Subject: [PATCH] Remove FlatFunction class as it is not used anymore FEA: ItEr75S23FixAllocationModel --- .../planner/entities/FlatFunction.java | 71 ------------------- .../planner/entities/ResourceAllocation.java | 21 +++--- .../AdvancedAllocationController.java | 6 +- .../StrechesFunctionConfiguration.java | 4 +- 4 files changed, 15 insertions(+), 87 deletions(-) delete mode 100644 navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/FlatFunction.java diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/FlatFunction.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/FlatFunction.java deleted file mode 100644 index 73f958bed..000000000 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/FlatFunction.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file is part of NavalPlan - * - * Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e - * Desenvolvemento Tecnolóxico de Galicia - * Copyright (C) 2010-2011 Igalia, S.L. - * - * 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 java.util.Arrays; -import java.util.List; - -import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; -import org.navalplanner.business.workingday.EffortDuration; - -/** - * Calculate hours per day for resource based on total amount of hours to be - * done and number of resources per day using a flat allocation - * - * @author Diego Pino García - */ -public class FlatFunction extends AssignmentFunction { - - public static FlatFunction create() { - return create(new FlatFunction()); - } - - protected FlatFunction() { - - } - - public String getName() { - return AssignmentFunctionName.FLAT.toString(); - } - - - public void applyTo(ResourceAllocation resourceAllocation) { - apply(resourceAllocation); - } - - private void apply(ResourceAllocation resourceAllocation) { - int hours = resourceAllocation.getAssignedHours(); - - List resourcesPerDayModification = Arrays.asList(resourceAllocation - .asResourcesPerDayModification()); - - ResourceAllocation - .allocating(resourcesPerDayModification) - .untilAllocating(EffortDuration.hours(hours)); - } - - @Override - public boolean isManual() { - return false; - } - -} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java index 25b251ae7..ec5c73b12 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java @@ -87,8 +87,6 @@ public abstract class ResourceAllocation extends private static final Log LOG = LogFactory.getLog(ResourceAllocation.class); - private static final FlatFunction FLAT_FUNCTION = FlatFunction.create(); - public static > List getSatisfied( Collection resourceAllocations) { Validate.notNull(resourceAllocations); @@ -1418,16 +1416,17 @@ public abstract class ResourceAllocation extends return assignmentFunction; } - public void setAssignmentFunction(AssignmentFunction assignmentFunction) { - // If the assignment function is empty, avoid creating an association - // between the resource allocation and the assignment function - if (assignmentFunction == null) { - this.assignmentFunction = null; - FLAT_FUNCTION.applyTo(this); - return; - } + /** + * If {@link AssignmentFunction} is null, it's just set and nothing is + * applied + * + * @param assignmentFunction + */ + public void setAssignmentFunctionAndApplyIfNotFlat(AssignmentFunction assignmentFunction) { this.assignmentFunction = assignmentFunction; - this.assignmentFunction.applyTo(this); + if (this.assignmentFunction != null) { + this.assignmentFunction.applyTo(this); + } } public void setAssignmentFunctionWithoutApply(AssignmentFunction assignmentFunction) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java index 303085224..5fed9ec51 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AdvancedAllocationController.java @@ -1388,7 +1388,7 @@ class Row { @Override public void applyOn(ResourceAllocation resourceAllocation) { - resourceAllocation.setAssignmentFunction(ManualFunction.create()); + resourceAllocation.setAssignmentFunctionAndApplyIfNotFlat(ManualFunction.create()); } @Override @@ -1490,7 +1490,7 @@ class Row { @Override public void applyOn( ResourceAllocation resourceAllocation) { - resourceAllocation.setAssignmentFunction(SigmoidFunction.create()); + resourceAllocation.setAssignmentFunctionAndApplyIfNotFlat(SigmoidFunction.create()); reloadEfforts(); } @@ -1655,7 +1655,7 @@ class Row { .setSelectedFunction(AssignmentFunctionName.MANUAL.toString()); ResourceAllocation allocation = getAllocation(); if (!(allocation.getAssignmentFunction() instanceof ManualFunction)) { - allocation.setAssignmentFunction(ManualFunction.create()); + allocation.setAssignmentFunctionAndApplyIfNotFlat(ManualFunction.create()); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/streches/StrechesFunctionConfiguration.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/streches/StrechesFunctionConfiguration.java index 73c514f38..704531035 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/streches/StrechesFunctionConfiguration.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/streches/StrechesFunctionConfiguration.java @@ -58,7 +58,7 @@ public abstract class StrechesFunctionConfiguration implements int exitStatus = stretchesFunctionController.showWindow(); if (exitStatus == Messagebox.OK) { - getAllocation().setAssignmentFunction( + getAllocation().setAssignmentFunctionAndApplyIfNotFlat( stretchesFunctionController.getAssignmentFunction()); assignmentFunctionChanged(); } @@ -94,7 +94,7 @@ public abstract class StrechesFunctionConfiguration implements @Override public void applyOn(ResourceAllocation resourceAllocation) { - resourceAllocation.setAssignmentFunction(StretchesFunction.create()); + resourceAllocation.setAssignmentFunctionAndApplyIfNotFlat(StretchesFunction.create()); } @Override