1 23 package org.hammurapi.inspectors; 24 25 import java.lang.reflect.Method ; 26 import java.util.Iterator ; 27 28 import org.hammurapi.InspectorBase; 29 30 import com.pavelvlasov.jsel.JselException; 31 import com.pavelvlasov.jsel.TypeBody; 32 import com.pavelvlasov.jsel.TypeIdentifier; 33 34 35 41 public class EnsureEjbCreateRule extends InspectorBase { 42 43 public void visit(com.pavelvlasov.jsel.Class clazz) { 44 try { 45 if (clazz.isKindOf("javax.ejb.EnterpriseBean")) { 46 Iterator it=clazz.getFields().iterator(); 47 while (it.hasNext()) { 48 Object o=it.next(); 49 if (o instanceof com.pavelvlasov.jsel.Method) { 50 com.pavelvlasov.jsel.Method method=(com.pavelvlasov.jsel.Method) o; 51 if ("ejbCreate".equals(method.getName())) { 52 return; 53 } 54 } 55 } 56 57 TypeIdentifier typId = clazz.getSuperclass(); 58 if (typId != null) { 59 TypeBody clazzSuperTypBody = typId.find(); 60 if (clazzSuperTypBody == null) { 61 java.lang.Class klass=typId.loadClass(); 62 Method [] methods = klass.getMethods(); 63 for (int i=0; i<methods.length; i++) { 64 if ("ejbCreate".equals(methods[i].getName())) { 65 return; 66 } 67 } 68 } else { 69 com.pavelvlasov.jsel.Class clazzSuper = (com.pavelvlasov.jsel.Class) clazzSuperTypBody; 70 visit(clazzSuper); 71 return; 72 } 73 } 74 75 context.reportViolation(clazz); 76 } 77 } catch (JselException e) { 78 context.warn(clazz, e); 79 } catch (ClassNotFoundException e) { 80 context.warn(clazz, e); 81 } 82 } 83 } 84 | Popular Tags |