1 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 52 public void visit(Method obj) { 53 m = XFactory.createXMethod(this); 54 } 55 @Override 56 public void visit(Attribute a) { 57 if (a instanceof Deprecated ) { 58 if (visitingMethod()) xFactory.deprecate(m); 59 else if (visitingField())xFactory.deprecate(f); 60 } 61 } 62 63 @Override 64 public void visit(Field obj) { 65 f = XFactory.createXField(this); 66 } 67 68 public void report() { 69 70 } 71 72 } 73 | Popular Tags |