package gw.lang.reflect.module;
import gw.fs.IFile;
import gw.fs.IDirectory;
import gw.fs.IResource;
import gw.lang.UnstableAPI;
import gw.util.Pair;
import java.net.URL;
import java.util.List;
/**
* NOTE: This API is in flux. This class may be moved to a different package, renamed, or have its methods change
* in future releases.
*
* Copyright 2010 Guidewire Software, Inc.
*/
@UnstableAPI
public interface IResourceAccess {
List<? extends IDirectory> getRoots();
List<? extends IDirectory> getSourceEntries();
IFile findFirstFile(String resourceName);
List<? extends IFile> findAllFiles(String resourceName);
List<Pair<String, IFile>> findAllFilesByExtension(String extension);
IResourceAccess clearCaches();
/**
* Iterates unique files within the specified directory, relative to the root directories.
*
* @param relativeDirName
* @return
*/
Iterable<? extends IFile> iterateUniqueFilesWithinDirectory( String relativeDirName );
String pathRelativeToRoot(IResource resource);
String getResourceName(URL url);
}