KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jeantessier > dependencyfinder > ant > VerboseListener


1 /*
2  * Copyright (c) 2001-2005, Jean Tessier
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Jean Tessier nor the names of his contributors
17  * may be used to endorse or promote products derived from this software
18  * without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */

32
33 package com.jeantessier.dependencyfinder.ant;
34
35 import org.apache.tools.ant.*;
36
37 import com.jeantessier.classreader.*;
38 import com.jeantessier.dependency.*;
39 import com.jeantessier.dependencyfinder.*;
40 import com.jeantessier.metrics.*;
41
42 public class VerboseListener extends VerboseListenerBase implements DependencyListener, MetricsListener {
43     private Task task;
44
45     public VerboseListener(Task task) {
46         this.task = task;
47     }
48     
49     public void beginSession(LoadEvent event) {
50         super.beginSession(event);
51         
52         task.log("Searching for classes ...", Project.MSG_VERBOSE);
53     }
54     
55     public void beginGroup(LoadEvent event) {
56         super.beginGroup(event);
57
58         switch (getCurrentGroup().getSize()) {
59             case -1:
60                 task.log("Searching " + getCurrentGroup().getName() + " ...", Project.MSG_VERBOSE);
61                 break;
62
63             case 0:
64             case 1:
65                 task.log("Searching " + getCurrentGroup().getName() + " (" + getCurrentGroup().getSize() + " file) ...", Project.MSG_VERBOSE);
66                 break;
67
68             default:
69                 task.log("Searching " + getCurrentGroup().getName() + " (" + getCurrentGroup().getSize() + " files) ...", Project.MSG_VERBOSE);
70                 break;
71         }
72     }
73
74     public void endClassfile(LoadEvent event) {
75         super.endClassfile(event);
76
77         task.log("Loading " + event.getClassfile() + " ...", Project.MSG_VERBOSE);
78     }
79     
80     public void endFile(LoadEvent event) {
81         super.endFile(event);
82
83         if (!getVisitedFiles().contains(event.getFilename())) {
84             task.log("Skipping " + event.getFilename() + " ...", Project.MSG_VERBOSE);
85         }
86     }
87     
88     public void beginSession(DependencyEvent event) {
89         // Do nothing
90
}
91
92     public void beginClass(DependencyEvent event) {
93         task.log("Getting dependencies from " + event.getClassName() + " ...", Project.MSG_VERBOSE);
94     }
95     
96     public void dependency(DependencyEvent event) {
97         // Do nothing
98
}
99     
100     public void endClass(DependencyEvent event) {
101         // Do nothing
102
}
103     
104     public void endSession(DependencyEvent event) {
105         // Do nothing
106
}
107
108     public void beginSession(MetricsEvent event) {
109         // Do nothing
110
}
111
112     public void beginClass(MetricsEvent event) {
113         task.log("Computing metrics for " + event.getClassfile() + " ...", Project.MSG_VERBOSE);
114     }
115     
116     public void beginMethod(MetricsEvent event) {
117         // Do nothing
118
}
119     
120     public void endMethod(MetricsEvent event) {
121         // Do nothing
122
}
123     
124     public void endClass(MetricsEvent event) {
125         // Do nothing
126
}
127     
128     public void endSession(MetricsEvent event) {
129         // Do nothing
130
}
131 }
132
Popular Tags