/** {@inheritDoc} */ public ProjectMetrics getProjectMetrics(Project proj) { ProjectMetrics metrics = new ProjectMetrics(); metrics = projectDAO.getProjectBLIMetrics(proj); if (metrics == null) { metrics = new ProjectMetrics(); } if (metrics.getTotalItems() > 0) { metrics.setCompletedItems(projectDAO.getDoneBLIs(proj)); } BacklogMetrics projMetrics = backlogBusiness.calculateLimitedBacklogMetrics(proj); if (metrics.getEffortLeft() != null) { metrics.getEffortLeft().add(projMetrics.getEffortLeft()); } else { metrics.setEffortLeft(projMetrics.getEffortLeft()); } if (metrics.getOriginalEstimate() != null) { metrics.getOriginalEstimate().add(projMetrics.getOriginalEstimate()); } else { metrics.setOriginalEstimate(projMetrics.getOriginalEstimate()); } metrics.setTotalItems(metrics.getTotalItems() + projMetrics.getTotalItems()); if (metrics.getCompletedItems() != null) { metrics.setCompletedItems(metrics.getCompletedItems() + projMetrics.getCompletedItems()); } else { metrics.setCompletedItems(projMetrics.getCompletedItems()); } if (metrics.getTotalItems() > 0) { metrics.setPercentDone( Math.round( 100.0f * (float) metrics.getCompletedItems() / (float) metrics.getTotalItems())); } return metrics; }