From 1fd1462b89cfd04ce2f463ae88d41842d01bc212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 2 Feb 2011 20:24:31 +0100 Subject: [PATCH] Avoid executing methods twice Extract local variables so potentially expensive methods are not executed twice FEA: ItEr69S10CriteriaLoadRefinement --- .../web/resourceload/LoadPeriodGenerator.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java index ddddeb5fd..54614c2e5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java @@ -206,20 +206,21 @@ abstract class LoadPeriodGenerator { + allocationsOnInterval + ". LoadPeriod ignored"); return null; } - return new LoadPeriod(start, end, getTotalWorkHours(), - getHoursAssigned(), new LoadLevel( - calculateLoadPercentage())); + int totalWorkHours = getTotalWorkHours(); + int hoursAssigned = getHoursAssigned(); + return new LoadPeriod(start, end, totalWorkHours, hoursAssigned, + new LoadLevel(calculateLoadPercentage(totalWorkHours, + hoursAssigned))); } protected abstract int getTotalWorkHours(); - private int calculateLoadPercentage() { - final int totalResourceWorkHours = getTotalWorkHours(); - int assigned = getHoursAssigned(); - if (totalResourceWorkHours == 0) { - return assigned == 0 ? 0 : Integer.MAX_VALUE; + private static int calculateLoadPercentage(int totalWorkHours, + int hoursAssigned) { + if (totalWorkHours == 0) { + return hoursAssigned == 0 ? 0 : Integer.MAX_VALUE; } - double proportion = assigned / (double) totalResourceWorkHours; + double proportion = hoursAssigned / (double) totalWorkHours; return new BigDecimal(proportion).scaleByPowerOfTen(2).intValue(); }