/*
* Written by Dawid Kurzyniec and released to the public domain, as explained
* at http://creativecommons.org/licenses/publicdomain
*/
package edu.emory.mathcs.util.classloader;
import java.net.*;
import java.util.*;
/**
* Abstraction of resource searching policy. Given resource name, the resource
* finder performs implementation-specific lookup, and, if it is able to locate
* the resource, returns the {@link edu.emory.mathcs.util.classloader.ResourceHandle handle(s)} or URL(s) of it.
*
* @author Dawid Kurzyniec
* @version 1.0
*/
public interface ResourceFinder {
/**
* Find the resource by name and return URL of it if found.
* @param name the resource name
* @return resource URL or null if resource was not found
*/
public URL findResource(String name);
/**
* Find all resources with given name and return enumeration of their URLs.
* @param name the resource name
* @return enumeration of resource URLs (possibly empty).
*/
public Enumeration findResources(String name);
/**
* Get the resource by name and, if found, open connection to it and return
* the {@link edu.emory.mathcs.util.classloader.ResourceHandle handle} of it.
* @param name the resource name
* @return resource handle or null if resource was not found
*/
public ResourceHandle getResource(String name);
/**
* Get all resources with given name and return enumeration of their
* {@link edu.emory.mathcs.util.classloader.ResourceHandle resource handles}.
* @param name the resource name
* @return enumeration of resource handles (possibly empty).
*/
public Enumeration getResources(String name);
}