[Clirr-devel] CVS: clirr/src/java/net/sf/clirr/framework ClassSelector.java,1.1,1.2
Status: Alpha
Brought to you by:
lkuehne
From: Simon K. <s_k...@us...> - 2004-06-11 00:38:49
|
Update of /cvsroot/clirr/clirr/src/java/net/sf/clirr/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15016 Modified Files: ClassSelector.java Log Message: Filter out anonymous classes - we never want these. Index: ClassSelector.java =================================================================== RCS file: /cvsroot/clirr/clirr/src/java/net/sf/clirr/framework/ClassSelector.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ClassSelector.java 5 Jun 2004 16:15:34 -0000 1.1 +++ ClassSelector.java 11 Jun 2004 00:38:29 -0000 1.2 @@ -99,6 +99,11 @@ */ public boolean isSelected(JavaClass clazz) { + if (isAnonymousInnerClass(clazz)) + { + return false; + } + boolean matches = matchesCriteria(clazz); if (mode == MODE_IF) { @@ -111,6 +116,33 @@ } /** + * Return true if this class is an anonymous inner class. + * Not even developers working on a package would be interested + * in API changes in these classes... + */ + private boolean isAnonymousInnerClass(JavaClass clazz) + { + String name = clazz.getClassName(); + int dollarPos = name.indexOf('$'); + if (dollarPos == -1) + { + return false; + } + + for(int i=dollarPos+1; i<name.length(); ++i) + { + if (!Character.isDigit(name.charAt(i))) + { + return false; + } + } + + // ok, we have a class name which contains a dollar sign, and + // every subsequent character is a digit. + return true; + } + + /** * Return true if this class matches one of the criteria stored * in this object. */ |