01: //////////////////////////////////////////////////////////////////////////////
02: // Clirr: compares two versions of a java library for binary compatibility
03: // Copyright (C) 2003 - 2005 Lars Kühne
04: //
05: // This library is free software; you can redistribute it and/or
06: // modify it under the terms of the GNU Lesser General Public
07: // License as published by the Free Software Foundation; either
08: // version 2.1 of the License, or (at your option) any later version.
09: //
10: // This library is distributed in the hope that it will be useful,
11: // but WITHOUT ANY WARRANTY; without even the implied warranty of
12: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: // Lesser General Public License for more details.
14: //
15: // You should have received a copy of the GNU Lesser General Public
16: // License along with this library; if not, write to the Free Software
17: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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: private Task task;
34:
35: private MessageTranslator translator = new MessageTranslator();
36:
37: private Map severityPrioMap = new HashMap(3);
38:
39: AntLogger(Task task) {
40: this .task = task;
41: severityPrioMap.put(Severity.INFO,
42: new Integer(Project.MSG_INFO));
43: severityPrioMap.put(Severity.WARNING, new Integer(
44: Project.MSG_WARN));
45: severityPrioMap.put(Severity.ERROR,
46: new Integer(Project.MSG_ERR));
47: }
48:
49: public void reportDiff(ApiDifference difference) {
50: final Severity severity = difference.getMaximumSeverity();
51: final Integer prio = (Integer) severityPrioMap.get(severity);
52: task.log(severity.toString() + ": "
53: + difference.getAffectedClass() + ": "
54: + difference.getReport(translator), prio.intValue());
55: }
56: }
|