private ProgressSnapshot createNewEstimatedDoneDate(DateTime origin, ProgressSnapshot latestSnapshot, Optional<Point> intersection) { long dateTimeInstant = origin.getMillis() + intersection.get().getX().round(new MathContext(0, RoundingMode.HALF_UP)).longValue(); DateTime estimationCompletionDate = new DateTime(dateTimeInstant); return ProgressSnapshot.forRequirementType(latestSnapshot.getRequirementType()) .atTime(estimationCompletionDate) .with(latestSnapshot.getTotal()).estimated() .and(0).failed() .and(0).completed() .outOf(latestSnapshot.getTotal()) .forBuild("ESTIMATED_DONE_DATE"); }
private ProgressSnapshot createEndOfSeriesEntry(ProgressSnapshot latestSnapshot, Optional<Point> intersection) { return ProgressSnapshot.forRequirementType(latestSnapshot.getRequirementType()) .atTime(latestSnapshot.getTime().plus(1).secondOfDay().getDateTime()) .and(0).failed() .and(0).completed() .and(latestSnapshot.getCompleted()).estimated() .outOf(latestSnapshot.getTotal()) .forBuild("ESTIMATED_DONE_DATE"); }
public void updateProgressHistory(RequirementsOutcomes requirementsOutcome) { String requirementType = requirementsOutcome.getType(); int totalRequirements = requirementsOutcome.getRequirementCount(); int completedRequirements = requirementsOutcome.getCompletedRequirementsCount(); int failingRequirements = requirementsOutcome.getFailingRequirementsCount(); String buildId = getEnvironmentVariables().getValue(BUILD_ID, "MANUAL"); ProgressSnapshot newSnapshot = ProgressSnapshot.forRequirementType(requirementType) .atTime(dateProvider.getCurrentTime()) .with(completedRequirements).completed() .and(failingRequirements).failed() .outOf(totalRequirements) .forBuild(buildId); try { save(newSnapshot); } catch (FileNotFoundException e) { throw new IllegalArgumentException("Unable to store history data", e); } }