1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.clirr.ant;
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import net.sf.clirr.core.DiffListenerAdapter;
26 import net.sf.clirr.core.Severity;
27 import net.sf.clirr.core.MessageTranslator;
28 import net.sf.clirr.core.ApiDifference;
29 import org.apache.tools.ant.Project;
30 import org.apache.tools.ant.Task;
31
32 final class AntLogger extends DiffListenerAdapter
33 {
34 private Task task;
35
36 private MessageTranslator translator = new MessageTranslator();
37
38 private Map severityPrioMap = new HashMap(3);
39
40 AntLogger(Task task)
41 {
42 this.task = task;
43 severityPrioMap.put(Severity.INFO, new Integer(Project.MSG_INFO));
44 severityPrioMap.put(Severity.WARNING, new Integer(Project.MSG_WARN));
45 severityPrioMap.put(Severity.ERROR, new Integer(Project.MSG_ERR));
46 }
47
48 public void reportDiff(ApiDifference difference)
49 {
50 final Severity severity = difference.getMaximumSeverity();
51 final Integer prio = (Integer) severityPrioMap.get(severity);
52 task.log(
53 severity.toString() + ": " + difference.getAffectedClass()
54 + ": " + difference.getReport(translator),
55 prio.intValue());
56 }
57 }