Package org.codehaus.commons.compiler.util.resource

# Class ListableResourceFinder

java.lang.Object
org.codehaus.commons.compiler.util.resource.ResourceFinder
org.codehaus.commons.compiler.util.resource.ListableResourceFinder

Direct Known Subclasses:
  `FileResourceFinder`, `MapResourceFinder`, `MultiResourceFinder`

public abstract class ListableResourceFinder extends ResourceFinder
Extends the `ResourceFinder` class with a `list(String, boolean)` method.

## Field Summary

### Fields inherited from class org.codehaus.commons.compiler.util.resource.ResourceFinder

`EMPTY_RESOURCE_FINDER`

## Constructor Summary

Constructors
Constructor
Description
`ListableResourceFinder()`

## Method Summary

Modifier and Type
Method
Description
`abstract Iterable<Resource>`
`list(String resourceNamePrefix, boolean recurse)`
Returns all resources who's names start with a given string.

### Methods inherited from class org.codehaus.commons.compiler.util.resource.ResourceFinder

`findResource, findResourceAsStream`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ListableResourceFinder

public ListableResourceFinder()

## Method Details

### list

@Nullable public abstract Iterable<Resource> list(String resourceNamePrefix, boolean recurse) throws IOException
Returns all resources who's names start with a given string. Only resources with a content are included, no "special entries" of any kind, e.g. directories.

If the prefix string ends with "/", you will get a proper directory listing (recurse`=false`) or directory tree (recurse`=true`). Example:

       resourceFinder.list("dir/", true) =>
         dir/
         dir/afile
         dir/bfile
         dir/adir/
         dir/adir/file
         dir/bdir/
         dir/bdir/file

Otherwise, you will get a strange subset of a directory listing, resp. directory tree, as follows:

       resourceFinder.list("dir/a", true) =>
         dir/afile
         dir/adir/
         dir/adir/file

Parameters:
  `resourceNamePrefix` - E.g. `""` or `"java/lang/"`
Returns:
  All resources who's name starts with the given prefix; `null` iff a location designated by the resourceNamePrefix does not exist
Throws:
  `IOException`