1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.jsel.Code; 28 import com.pavelvlasov.jsel.LanguageElement; 29 import com.pavelvlasov.jsel.Method; 30 import com.pavelvlasov.jsel.expressions.MethodCall; 31 import com.pavelvlasov.review.SourceMarker; 32 33 34 40 public class InvokeFinalizeRule extends InspectorBase { 41 42 private static final String FINALIZE = "finalize("; 43 44 public void visit(MethodCall element) { 45 String method = element.toString(); 46 47 if (FINALIZE.equals(method) || method.endsWith("."+FINALIZE)) { 48 if ("super.finalize(".equals(method)) { 49 Code code = ((LanguageElement) element).getEnclosingCode(); 50 if (code instanceof Method && ((Method) code).getParameters().isEmpty() && "finalize".equals(((Method) code).getName())) { 51 return; 52 } 53 } 54 context.reportViolation((SourceMarker) element); 55 } 56 } 57 58 } 59 | Popular Tags |