package com.vistatec.ocelot.tm.penalty; import java.util.ArrayList; import java.util.List; import com.google.inject.Inject; import com.vistatec.ocelot.config.xml.TmManagement; import com.vistatec.ocelot.tm.TmManager; import com.vistatec.ocelot.tm.TmMatch; import com.vistatec.ocelot.tm.TmPenalizer; /** * Applies the penalty specified in the {@link TmManagement.TmConfig} for each * match based on their TM origin if applicable. */ public class SimpleTmPenalizer implements TmPenalizer { private final TmManager tmManager; @Inject public SimpleTmPenalizer(TmManager tmManager) { this.tmManager = tmManager; } @Override public List<TmMatch> applyPenalties(List<TmMatch> matches) { List<TmMatch> penalizedMatches = new ArrayList<>(); for (TmMatch match : matches) { TmManagement.TmConfig config = tmManager.fetchTm(match.getTmOrigin()); penalizedMatches.add(new PenalizedTmMatch(match, config == null ? 0 : config.getPenalty())); } return penalizedMatches; } }