mbenson 2005/01/26 11:25:41 Modified: src/main/org/apache/tools/ant/types/optional/depend Tag: ANT_16_BRANCH DependScanner.java Log: sync with HEAD Revision Changes Path No revision No revision 1.14.2.5 +31 -41 ant/src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java Index: DependScanner.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java,v retrieving revision 1.14.2.4 retrieving revision 1.14.2.5 diff -u -r1.14.2.4 -r1.14.2.5 --- DependScanner.java 9 Mar 2004 17:01:56 -0000 1.14.2.4 +++ DependScanner.java 26 Jan 2005 19:25:40 -0000 1.14.2.5 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2002,2004 The Apache Software Foundation + * Copyright 2001-2002, 2004-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,9 +27,7 @@ /** - * An interface used to describe the actions required by any type of - * directory scanner. - * + * DirectoryScanner for finding class dependencies. */ public class DependScanner extends DirectoryScanner { /** @@ -39,24 +37,19 @@ = "org.apache.tools.ant.util.depend.bcel.FullAnalyzer"; /** - * The base directory for the scan - */ - private File basedir; - - /** - * The root classes to drive the search for dependent classes + * The root classes to drive the search for dependent classes. */ private Vector rootClasses; /** - * The names of the classes to include in the fileset + * The names of the classes to include in the fileset. */ private Vector included; /** * The parent scanner which gives the basic set of files. Only files which * are in this set and which can be reached from a root class will end - * up being included in the result set + * up being included in the result set. */ private DirectoryScanner parentScanner; @@ -72,51 +65,43 @@ } /** - * Sets the basedir for scanning. This is the directory that is scanned - * recursively. - * - * @param basedir the basedir for scanning - */ - public void setBasedir(File basedir) { - this.basedir = basedir; - } - - /** - * Gets the basedir that is used for scanning. - * - * @return the basedir that is used for scanning - */ - public File getBasedir() { return basedir; } - - /** * Sets the root classes to be used to drive the scan. * - * @param rootClasses the rootClasses to be used for this scan + * @param rootClasses the rootClasses to be used for this scan. */ - public void setRootClasses(Vector rootClasses) { + public synchronized void setRootClasses(Vector rootClasses) { this.rootClasses = rootClasses; } /** - * Get the names of the class files, baseClass depends on + * Get the names of the class files on which baseClass depends. * - * @return the names of the files + * @return the names of the files. */ public String[] getIncludedFiles() { - int count = included.size(); - String[] files = new String[count]; - for (int i = 0; i < count; i++) { + String[] files = new String[getIncludedFilesCount()]; + for (int i = 0; i < files.length; i++) { files[i] = (String) included.elementAt(i); } return files; } /** - * Scans the base directory for files that baseClass depends on + * @see DirectoryScanner#getIncludedFilesCount + */ + public synchronized int getIncludedFilesCount() { + if (included == null) { + throw new IllegalStateException(); + } + return included.size(); + } + + /** + * Scans the base directory for files on which baseClass depends. * - * @exception IllegalStateException when basedir was set incorrecly + * @exception IllegalStateException when basedir was set incorrectly. */ - public void scan() throws IllegalStateException { + public synchronized void scan() throws IllegalStateException { included = new Vector(); String analyzerClassName = DEFAULT_ANALYZER_CLASS; DependencyAnalyzer analyzer = null; @@ -133,7 +118,6 @@ String rootClass = (String) e.nextElement(); analyzer.addRootClass(rootClass); } - Enumeration e = analyzer.getClassDependencies(); String[] parentFiles = parentScanner.getIncludedFiles(); @@ -141,7 +125,6 @@ for (int i = 0; i < parentFiles.length; ++i) { parentSet.put(parentFiles[i], parentFiles[i]); } - while (e.hasMoreElements()) { String classname = (String) e.nextElement(); String filename = classname.replace('.', File.separatorChar); @@ -182,6 +165,13 @@ } /** + * @see DirectoryScanner#getIncludedDirsCount + */ + public int getIncludedDirsCount() { + return 0; + } + + /** * @see DirectoryScanner#getNotIncludedDirectories */ public String[] getNotIncludedDirectories() {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]