- MatchVisitor matcher = new MatchVisitor(aProgramCondition);
- aGuide.accept(matcher);
- List<Program> programs = matcher.getMatches();
- EnumMap<RecordingResult, List<Program>> messages = new EnumMap<RecordingResult, List<Program>>(
- RecordingResult.class);
- for (RecordingResult result : RecordingResult.values()) {
- messages.put(result, new ArrayList<Program>());
- }
- for (Program program : programs) {
- Program.RecordingResult result = program.record();
- messages.get(result).add(program);
- }
- String msg = "Summary of KiSS crawler: \n\n\n";
-
- for (RecordingResult result : RecordingResult.values()) {
- if (messages.get(result).size() > 0) {
- msg += result.getDescription() + "\n\n";
- for (Program program : messages.get(result)) {
- msg += program + "\n";
- }
+ ProgramActionExecutor executor = new ProgramActionExecutor();
+ for (ProgramFilter filter : aProgramCondition) {
+ List<Program> programs = filter.apply(aGuide);
+ ProgramAction action = filter.getAction();
+ for (Program program: programs) {
+ action.execute(program, executor);