Added support for an exclusion regexp.

git-svn-id: https://samskivert.googlecode.com/svn/trunk@1038 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
mdb
2003-01-28 22:39:35 +00:00
parent d2187ef067
commit bc72a70c9f
2 changed files with 18 additions and 7 deletions
@@ -1,5 +1,5 @@
//
// $Id: DriverTask.java,v 1.3 2001/12/03 09:14:11 mdb Exp $
// $Id: DriverTask.java,v 1.4 2003/01/28 22:39:34 mdb Exp $
//
// viztool - a tool for visualizing collections of java classes
// Copyright (C) 2001 Michael Bayne
@@ -79,6 +79,11 @@ public class DriverTask extends Task
_classes = classes;
}
public void setExclude (String exclude)
{
_exclude = exclude;
}
public void setOutput (File output)
{
_output = output;
@@ -116,10 +121,11 @@ public class DriverTask extends Task
ClassEnumerator enum = new ClassEnumerator(classpath.toString());
FilterEnumerator fenum = null;
try {
fenum = new RegexpEnumerator(_classes, enum);
fenum = new RegexpEnumerator(_classes, _exclude, enum);
} catch (Exception e) {
throw new BuildException("Invalid package regular expression " +
"[classes=" + _classes + "].", e);
"[classes=" + _classes +
", exclude=" + _exclude + "].", e);
}
ArrayList classes = new ArrayList();
@@ -215,7 +221,7 @@ public class DriverTask extends Task
protected String _vizclass;
protected String _pkgroot;
protected String _classes;
protected String _classes, _exclude;
protected File _output;
// use use this for accumulating our classpath
@@ -1,5 +1,5 @@
//
// $Id: RegexpEnumerator.java,v 1.1 2001/12/03 08:34:53 mdb Exp $
// $Id: RegexpEnumerator.java,v 1.2 2003/01/28 22:39:35 mdb Exp $
//
// viztool - a tool for visualizing collections of java classes
// Copyright (C) 2001 Michael Bayne
@@ -30,17 +30,22 @@ import org.apache.regexp.RESyntaxException;
*/
public class RegexpEnumerator extends FilterEnumerator
{
public RegexpEnumerator (String regexp, Iterator source)
public RegexpEnumerator (String regexp, String exregex, Iterator source)
throws RESyntaxException
{
super(source);
_regexp = new RE(regexp);
if (exregex != null) {
_exreg = new RE(exregex);
}
}
protected boolean filterClass (String clazz)
{
return !_regexp.match(clazz);
return !(_regexp.match(clazz) &&
(_exreg == null || !_exreg.match(clazz)));
}
protected RE _regexp;
protected RE _exreg;
}