KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > framework > AbstractParser


1 package jdepend.framework;
2
3 import java.io.*;
4 import java.util.*;
5
6 /**
7  * The <code>AbstractParser</code> class is the base class
8  * for classes capable of parsing files to create a
9  * <code>JavaClass</code> instance.
10  *
11  * @author <b>Mike Clark</b>
12  * @author Clarkware Consulting, Inc.
13  */

14
15 public abstract class AbstractParser {
16
17     private ArrayList parseListeners;
18     private PackageFilter filter;
19     public static boolean DEBUG = false;
20
21
22     public AbstractParser() {
23         this(new PackageFilter());
24     }
25
26     public AbstractParser(PackageFilter filter) {
27         setFilter(filter);
28         parseListeners = new ArrayList();
29     }
30
31     public void addParseListener(ParserListener listener) {
32         parseListeners.add(listener);
33     }
34
35     /**
36      * Registered parser listeners are informed that the resulting
37      * <code>JavaClass</code> was parsed.
38      */

39     public abstract JavaClass parse(InputStream is) throws IOException;
40
41     /**
42      * Informs registered parser listeners that the specified
43      * <code>JavaClass</code> was parsed.
44      *
45      * @param jClass Parsed Java class.
46      */

47     protected void onParsedJavaClass(JavaClass jClass) {
48         for (Iterator i = parseListeners.iterator(); i.hasNext();) {
49             ((ParserListener) i.next()).onParsedJavaClass(jClass);
50         }
51     }
52
53     protected PackageFilter getFilter() {
54         if (filter == null) {
55             setFilter(new PackageFilter());
56         }
57         return filter;
58     }
59
60     protected void setFilter(PackageFilter filter) {
61         this.filter = filter;
62     }
63
64     protected void debug(String JavaDoc message) {
65         if (DEBUG) {
66             System.err.println(message);
67         }
68     }
69 }
Popular Tags