package jef.tools.resource; import java.io.IOException; public interface ResourcePatternResolver { /** * Pseudo URL prefix for all matching resources from the class path: * "classpath*:" This differs from ResourceLoader's classpath URL prefix in * that it retrieves all matching resources for a given name (e.g. * "/beans.xml"), for example in the root of all deployed JAR files. * * @see jef.tools.resource.ResourceLoader#CLASSPATH_URL_PREFIX */ String CLASSPATH_ALL_URL_PREFIX = "classpath*:"; /** * Resolve the given location pattern into Resource objects. * <p> * Overlapping resource entries that point to the same physical resource * should be avoided, as far as possible. The result should have set * semantics. * * @param locationPattern * the location pattern to resolve * @return the corresponding Resource objects * @throws IOException * in case of I/O errors */ IResource[] getResources(String locationPattern) throws IOException; /** * Return a Resource handle for the specified resource. The handle should * always be a reusable resource descriptor, allowing for multiple * {@link Resource#getInputStream()} calls. * <p> * <ul> * <li>Must support fully qualified URLs, e.g. "file:C:/test.dat". * <li>Must support classpath pseudo-URLs, e.g. "classpath:test.dat". * <li>Should support relative file paths, e.g. "WEB-INF/test.dat". (This * will be implementation-specific, typically provided by an * ApplicationContext implementation.) * </ul> * <p> * Note that a Resource handle does not imply an existing resource; you need * to invoke {@link Resource#exists} to check for existence. * * @param location * the resource location * @return a corresponding Resource handle * @see #CLASSPATH_URL_PREFIX * @see jef.tools.resource.Resource#exists * @see jef.tools.resource.Resource#getInputStream */ // Resource getResource(String location); }