1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.jsel.JselException; 28 import com.pavelvlasov.jsel.Method; 29 import com.pavelvlasov.jsel.TypeBody; 30 import com.pavelvlasov.jsel.expressions.This; 31 import com.pavelvlasov.jsel.statements.ReturnStatement; 32 import com.pavelvlasov.review.SourceMarker; 33 import com.pavelvlasov.util.Visitor; 34 35 36 42 public class ReturnThisFromEjbRule extends InspectorBase { 43 44 public void visit(Method method) { 45 if (method.getModifiers().contains("public")) { 46 TypeBody tb = method.getEnclosingType(); 47 try { 48 if (tb.isKindOf("javax.ejb.EnterpriseBean")) { 49 method.accept(new Visitor() { 50 public boolean visit(Object target) { 51 if (target instanceof ReturnStatement) { 52 ReturnStatement returnStatement=(ReturnStatement) target; 53 if (returnStatement.getExpression() instanceof This) { 54 context.reportViolation((SourceMarker) returnStatement); 55 } 56 } 57 return true; 58 } 59 }); 60 } 61 } catch (JselException e) { 62 context.warn(method, e); 63 } 64 } 65 } 66 } 67 | Popular Tags |