public double getActivityTotalScore() { double score = 0.0; for (ActivityScoring scoringFunction : activityScoringFunctions) { double contribution = scoringFunction.getScore(); // if (log.isTraceEnabled()) { // log.trace("Contribution of activity scoring function: " + // scoringFunction.getClass().getName() + " is: " + contribution); // } score += contribution; } return score; }
@Override public final void handleActivity(Activity activity) { double startTime = activity.getStartTime(); double endTime = activity.getEndTime(); if (startTime == Time.UNDEFINED_TIME && endTime != Time.UNDEFINED_TIME) { for (ActivityScoring activityScoringFunction : activityScoringFunctions) { activityScoringFunction.handleFirstActivity(activity); } } else if (startTime != Time.UNDEFINED_TIME && endTime != Time.UNDEFINED_TIME) { for (ActivityScoring activityScoringFunction : activityScoringFunctions) { activityScoringFunction.handleActivity(activity); } } else if (startTime != Time.UNDEFINED_TIME && endTime == Time.UNDEFINED_TIME) { for (ActivityScoring activityScoringFunction : activityScoringFunctions) { activityScoringFunction.handleLastActivity(activity); } } else { throw new RuntimeException( "Trying to score an activity without start or end time. Should not happen."); } }