--- Antoine Levy-Lambert <[EMAIL PROTECTED]> wrote: > Hello Matt and others, > > I had thought about this issue of optimizing pattern > scanning. > DirectoryScanner used to be written so that if an > exclude pattern looks like > foo/bar/** scanning stops in foo/bar. > Actually if an exclude pattern is like **/Test/**, > every time a directory Test is encountered it should > not be scanned.
The exception to that rule is if some other directory Test is more explicitly specified as an include; I think this is handled as well as can be in couldHoldIncluded(). > Not sure whether this change does exactly that. > > I am not sure exactly what the semantics of isDeeper > are ? This method does as little as it has to. When this (private) method is called, other methods have determined the matching as well as we already have had. isDeeper defers to SelectorUtils to return tokenized path Vectors... if the pattern Vector contains "**" it is infinitely deep and thus is deeper, otherwise the pattern Vector must contain more tokens than the name in order to be considered deeper. Thus if we have no patterns that match files at deeper levels than we have already reached, we do not scan. Hope this clears up a bit, Matt > > Cheers, > > Antoine > > [EMAIL PROTECTED] wrote: > > > >mbenson 2005/03/02 14:43:54 > > > > Modified: src/main/org/apache/tools/ant > DirectoryScanner.java > > Log: > > Stop scanning directories where we match the > directory but know based > > on the pattern that we will never match any of > its contents. > >.... > > /** > > + * Verify that a pattern specifies files > deeper > > + * than the level of the specified file. > > + * @param pattern the pattern to check. > > + * @param name the name to check. > > + * @return whether the pattern is deeper > than the name. > > + * @since Ant 1.6.3 > > + */ > > + private boolean isDeeper(String pattern, > String name) { > > + Vector p = > SelectorUtils.tokenizePath(pattern); > > + Vector n = > SelectorUtils.tokenizePath(name); > > + return p.contains("**") || p.size() > > n.size(); > > + } > > + > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________ Celebrate Yahoo!'s 10th Birthday! Yahoo! Netrospective: 100 Moments of the Web http://birthday.yahoo.com/netrospective/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]