//foo:all
) into one or more lists of targets (such as //foo:foo,
* //foo:bar
). During a call to {@link TargetPattern#eval}, the {@link TargetPattern} makes
* calls to this interface to implement the target pattern semantics. The generic type {@code T} is
* only for compile-time type safety; there are no requirements to the actual type.
*/
public interface TargetPatternResolverNote that the {@code directory} can be empty, which corresponds to the "//..." pattern. * Implementations may choose not to support this case and throw an {@link * IllegalArgumentException} exception instead, or may restrict the set of directories that are * considered by default. * *
If the {@code directory} points to a package, then that package should also be part of the
* result.
*
* @param originalPattern the original target pattern for error reporting purposes
* @param directory the directory in which to look for packages
* @param rulesOnly whether to return rules only
* @param excludedSubdirectories a set of transitive subdirectories beneath {@code directory}
* to ignore
* @param callback the callback to receive the result, possibly in multiple batches.
* @param exceptionClass The class type of the parameterized exception.
* @throws TargetParsingException under implementation-specific failure conditions
*/