if (name.endsWith("Exception") &&  (!obj.getSuperclassName().endsWith("Exception")) &&  (!obj.getSuperclassName().endsWith("Error")) &&  (!obj.getSuperclassName().endsWith("Throwable"))) { bugReporter.reportBug(new BugInstance(this, "NM_CLASS_NOT_EXCEPTION", NORMAL_PRIORITY ) .addClass(this)); }
	public void visit(JavaClass obj) {		String name = obj.getClassName();		String[] parts = name.split("[$+.]");		baseClassName = parts[parts.length - 1];		classIsPublicOrProtected = obj.isPublic() || obj.isProtected();		if (baseClassName.length() == 1) return;		if(Character.isLetter(baseClassName.charAt(0))		   && !Character.isUpperCase(baseClassName.charAt(0))		   && baseClassName.indexOf("_") ==-1 			)			bugReporter.reportBug(new BugInstance(this, 				"NM_CLASS_NAMING_CONVENTION", 				classIsPublicOrProtected 				? NORMAL_PRIORITY				: LOW_PRIORITY					)			        .addClass(this));		super.visit(obj);	}