[Clirr-devel] CVS: clirr/src/java/net/sf/clirr/cli Clirr.java,1.3,1.4
Status: Alpha
Brought to you by:
lkuehne
From: Simon K. <s_k...@us...> - 2004-06-21 08:48:21
|
Update of /cvsroot/clirr/clirr/src/java/net/sf/clirr/cli In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv532 Modified Files: Clirr.java Log Message: Add "--include-pkg" option, to specify that only certain java packages are to be checked. Index: Clirr.java =================================================================== RCS file: /cvsroot/clirr/clirr/src/java/net/sf/clirr/cli/Clirr.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Clirr.java 18 Jun 2004 07:35:22 -0000 1.3 +++ Clirr.java 21 Jun 2004 08:48:13 -0000 1.4 @@ -61,12 +61,14 @@ private void run(String[] args) { - System.out.println("reporting diffs.."); BasicParser parser = new BasicParser(); Options options = new Options(); - options.addOption("o", "oldversion", true, "jar files of old version"); - options.addOption("n", "newversion", true, "jar files of new version"); - options.addOption("s", "style", true, "output style"); + options.addOption("o", "old-version", true, "jar files of old version"); + options.addOption("n", "new-version", true, "jar files of new version"); + options.addOption("s", "style", true, "output style [text|xml]"); + options.addOption("i", "include-pkg", true, + "include only classes from this package and its subpackages"); + options.addOption("p", "show-pkg-scope", false, "show package scope classes"); options.addOption("a", "show-all-scopes", false, "show private and package classes"); options.addOption("f", "output-file", true, "output file name"); @@ -82,16 +84,13 @@ System.exit(-1); } - // TODO: provide commandline options that allow the user to - // specify which packages/classes should be checked - // - ClassSelector classSelector = new ClassSelector(ClassSelector.MODE_UNLESS); - String oldPath = cmdline.getOptionValue('o'); String newPath = cmdline.getOptionValue('n'); String style = cmdline.getOptionValue('s', "text"); String outputFileName = cmdline.getOptionValue('f'); + String[] includePkgs = cmdline.getOptionValues('i'); boolean showAll = cmdline.hasOption('a'); + boolean showPkg = cmdline.hasOption('p'); if ((oldPath == null) || (newPath == null)) { @@ -104,6 +103,25 @@ { checker.getScopeSelector().setScope(ScopeSelector.SCOPE_PRIVATE); } + else if (showPkg) + { + checker.getScopeSelector().setScope(ScopeSelector.SCOPE_PACKAGE); + } + + ClassSelector classSelector; + if ((includePkgs != null) && (includePkgs.length > 0)) + { + classSelector = new ClassSelector(ClassSelector.MODE_IF); + for (int i = 0; i < includePkgs.length; ++i) + { + classSelector.addPackageTree(includePkgs[i]); + } + } + else + { + // a selector that selects everything + classSelector = new ClassSelector(ClassSelector.MODE_UNLESS); + } DiffListener diffListener = null; if (style.equals("text")) |