KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > umd > cs > findbugs > detect > Methods


1 /*
2  * FindBugs - Find bugs in Java programs
3  * Copyright (C) 2003-2005 University of Maryland
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
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 edu.umd.cs.findbugs.detect;
21
22 import org.apache.bcel.classfile.Attribute;
23 import org.apache.bcel.classfile.Deprecated;
24 import org.apache.bcel.classfile.Field;
25 import org.apache.bcel.classfile.Method;
26
27 import edu.umd.cs.findbugs.BugReporter;
28 import edu.umd.cs.findbugs.Detector;
29 import edu.umd.cs.findbugs.NonReportingDetector;
30 import edu.umd.cs.findbugs.ba.AnalysisContext;
31 import edu.umd.cs.findbugs.ba.ClassContext;
32 import edu.umd.cs.findbugs.ba.XFactory;
33 import edu.umd.cs.findbugs.ba.XField;
34 import edu.umd.cs.findbugs.ba.XMethod;
35 import edu.umd.cs.findbugs.visitclass.PreorderVisitor;
36
37 public class Methods extends PreorderVisitor implements Detector,
38         NonReportingDetector {
39     
40     private XFactory xFactory = AnalysisContext.currentXFactory();
41
42     XMethod m;
43     XField f;
44     public Methods(BugReporter bugReporter) {
45     }
46
47     public void visitClassContext(ClassContext classContext) {
48         classContext.getJavaClass().accept(this);
49     }
50
51     @Override JavaDoc
52     public void visit(Method obj) {
53         m = XFactory.createXMethod(this);
54     }
55     @Override JavaDoc
56     public void visit(Attribute a) {
57         if (a instanceof Deprecated JavaDoc) {
58             if (visitingMethod()) xFactory.deprecate(m);
59             else if (visitingField())xFactory.deprecate(f);
60         }
61     }
62
63     @Override JavaDoc
64     public void visit(Field obj) {
65         f = XFactory.createXField(this);
66     }
67
68     public void report() {
69
70     }
71
72 }
73
Popular Tags