1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.score;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
23
24
25
26
27 public class ScoreUpdater {
28
29
30
31 public ScoreUpdater() {
32 super();
33 }
34
35 private static final Logger logger = LogManager.getLogger(ScoreUpdater.class);
36
37 private final List<ScoreBooster> scoreBoosterList = new ArrayList<>();
38
39
40
41
42
43 public String execute() {
44 final StringBuilder resultBuf = new StringBuilder();
45 scoreBoosterList.forEach(b -> {
46 try {
47 final long count = b.process();
48 resultBuf.append(b.getClass().getSimpleName()).append(" : ").append(count).append('\n');
49 } catch (final Exception e) {
50 logger.warn("Failed to update scores: booster={}", b.getClass().getSimpleName(), e);
51 resultBuf.append(e.getMessage()).append('\n');
52 }
53 });
54 return resultBuf.toString();
55 }
56
57
58
59
60
61 protected void addScoreBooster(final ScoreBooster scoreBooster) {
62 scoreBoosterList.add(scoreBooster);
63 scoreBoosterList.sort((b1, b2) -> b2.getPriority() - b1.getPriority());
64 }
65 }