1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.jsel.JselException; 28 import com.pavelvlasov.jsel.OperationNameSpace.OperationNameSpaceEntry; 29 30 31 37 public class ThreadSubclassesRule extends InspectorBase { 38 39 private static final String JAVA_LANG_THREAD = "java.lang.Thread"; 40 public void visit(com.pavelvlasov.jsel.Class clazz) { 41 try { 42 OperationNameSpaceEntry entry = clazz.getOperationNamespace().find("run()"); 43 if (clazz.isKindOf(JAVA_LANG_THREAD) && (entry==null || !clazz.getFcn().equals(entry.getInfo().getDeclaringType().getName()))) { 44 context.reportViolation(clazz); 45 } 46 } catch (JselException e) { 47 context.warn(clazz, e); 48 } 49 } 50 } 51 | Popular Tags |