org.apache.cayenne.util
Class ResourceLocator

java.lang.Object
  extended by org.apache.cayenne.util.ResourceLocator
All Implemented Interfaces:
ResourceFinder
Direct Known Subclasses:
WebApplicationResourceLocator

public class ResourceLocator
extends Object
implements ResourceFinder

Utility class to find resources (files, etc.), using a preconfigured strategy.


Field Summary
protected  List<String> additionalClassPaths
           
protected  List<String> additionalFilesystemPaths
           
protected  ClassLoader classLoader
           
protected  boolean skipAbsolutePath
           
protected  boolean skipClasspath
           
protected  boolean skipCurrentDirectory
           
protected  boolean skipHomeDirectory
           
 
Constructor Summary
ResourceLocator()
          Creates new ResourceLocator with default lookup policy including user home directory, current directory and CLASSPATH.
 
Method Summary
 void addClassPath(String customPath)
          Adds a custom path for class path lookups.
 void addFilesystemPath(File path)
          Adds the given directory as a path for filesystem lookups.
 void addFilesystemPath(String path)
          Adds the given String as a custom path for filesystem lookups.
static String classBaseUrl(Class<?> aClass)
          Deprecated. since 3.0 unused.
 URL findDirectoryResource(String name)
          Returns a directory resource URL using the lookup strategy configured for this ResourceLocator or null if no readable resource can be found for the given name.
static File findFileInCurrentDirectory(String name)
          Looks up a file in the current directory.
static File findFileInFileSystem(String name)
          Looks up a file in the filesystem.
static File findFileInHomeDirectory(String name)
          Looks up a file in the user home directory.
 URL findResource(String name)
          Returns a resource URL using the lookup strategy configured for this Resourcelocator or null if no readable resource can be found for the given name.
static InputStream findResourceInClasspath(String name)
          Deprecated. since 3.0 unused.
static InputStream findResourceInFileSystem(String name)
          Deprecated. since 3.0 unused
 InputStream findResourceStream(String name)
          Returns an InputStream on the found resource using the lookup strategy configured for this ResourceLocator or null if no readable resource can be found for the given name.
static URL findURLInClassLoader(String name, ClassLoader loader)
          Looks up the URL for the named resource using the specified ClassLoader.
static URL findURLInClasspath(String name)
          Looks up the URL for the named resource using this class' ClassLoader.
 ClassLoader getClassLoader()
          Returns the ClassLoader associated with this ResourceLocator.
 URL getResource(String name)
          Returns a single resource matching a given name.
 Collection<URL> getResources(String name)
          Returns a collection of resource URLs with a given name found in the environment using some lookup strategy.
 void setClassLoader(ClassLoader classLoader)
          Sets ClassLoader used to locate resources.
 void setSkipAbsolutePath(boolean skipAbsPath)
          Sets "skipAbsolutePath" property.
 void setSkipClasspath(boolean skipClasspath)
          Sets "skipClasspath" property.
 void setSkipCurrentDirectory(boolean skipCurDir)
          Sets "skipCurrentDirectory" property.
 void setSkipHomeDirectory(boolean skipHomeDir)
          Sets "skipHomeDirectory" property.
 boolean willSkipAbsolutePath()
          Returns true if no lookups are performed using path as absolute path.
 boolean willSkipClasspath()
          Returns true if no lookups are performed in the classpath.
 boolean willSkipCurrentDirectory()
          Returns true if no lookups are performed in the current directory.
 boolean willSkipHomeDirectory()
          Returns true if no lookups are performed in the user home directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

skipAbsolutePath

protected boolean skipAbsolutePath

skipClasspath

protected boolean skipClasspath

skipCurrentDirectory

protected boolean skipCurrentDirectory

skipHomeDirectory

protected boolean skipHomeDirectory

additionalClassPaths

protected List<String> additionalClassPaths

additionalFilesystemPaths

protected List<String> additionalFilesystemPaths

classLoader

protected ClassLoader classLoader
Constructor Detail

ResourceLocator

public ResourceLocator()
Creates new ResourceLocator with default lookup policy including user home directory, current directory and CLASSPATH.

Method Detail

findResourceInClasspath

public static InputStream findResourceInClasspath(String name)
Deprecated. since 3.0 unused.

Returns a resource as InputStream if it is found in CLASSPATH or null otherwise. Lookup is normally performed in all JAR and ZIP files and directories available to the ClassLoader.


findResourceInFileSystem

public static InputStream findResourceInFileSystem(String name)
Deprecated. since 3.0 unused

Returns a resource as InputStream if it is found in the filesystem or null otherwise. Lookup is first performed relative to the user's home directory (as defined by "user.home" system property), and then relative to the current directory.


findFileInFileSystem

public static File findFileInFileSystem(String name)
Looks up a file in the filesystem. First looks in the user home directory, then in the current directory.

Returns:
file object matching the name, or null if file can not be found or if it is not readable.
See Also:
findFileInHomeDirectory(String), findFileInCurrentDirectory(String)

findFileInHomeDirectory

public static File findFileInHomeDirectory(String name)
Looks up a file in the user home directory.

Returns:
file object matching the name, or null if file cannot be found or is not readable.

findFileInCurrentDirectory

public static File findFileInCurrentDirectory(String name)
Looks up a file in the current directory.

Returns:
file object matching the name, or null if file can not be found is not readable.

findURLInClasspath

public static URL findURLInClasspath(String name)
Looks up the URL for the named resource using this class' ClassLoader.


findURLInClassLoader

public static URL findURLInClassLoader(String name,
                                       ClassLoader loader)
Looks up the URL for the named resource using the specified ClassLoader.


classBaseUrl

public static String classBaseUrl(Class<?> aClass)
Deprecated. since 3.0 unused.

Returns a base URL as a String from which this class was loaded. This is normally a JAR or a file URL, but it is ClassLoader dependent.


findResourceStream

public InputStream findResourceStream(String name)
Returns an InputStream on the found resource using the lookup strategy configured for this ResourceLocator or null if no readable resource can be found for the given name.


getResource

public URL getResource(String name)
Description copied from interface: ResourceFinder
Returns a single resource matching a given name. If more than one resource matches the name, it is implementation specific which one will be returned.

Specified by:
getResource in interface ResourceFinder
Since:
3.0

getResources

public Collection<URL> getResources(String name)
Description copied from interface: ResourceFinder
Returns a collection of resource URLs with a given name found in the environment using some lookup strategy.

Specified by:
getResources in interface ResourceFinder
Since:
3.0

findResource

public URL findResource(String name)
Returns a resource URL using the lookup strategy configured for this Resourcelocator or null if no readable resource can be found for the given name.


findDirectoryResource

public URL findDirectoryResource(String name)
Returns a directory resource URL using the lookup strategy configured for this ResourceLocator or null if no readable resource can be found for the given name. The returned resource is assumed to be a directory, so the returned URL will be in a directory format (with "/" at the end).


willSkipHomeDirectory

public boolean willSkipHomeDirectory()
Returns true if no lookups are performed in the user home directory.


setSkipHomeDirectory

public void setSkipHomeDirectory(boolean skipHomeDir)
Sets "skipHomeDirectory" property.


willSkipCurrentDirectory

public boolean willSkipCurrentDirectory()
Returns true if no lookups are performed in the current directory.


setSkipCurrentDirectory

public void setSkipCurrentDirectory(boolean skipCurDir)
Sets "skipCurrentDirectory" property.


willSkipClasspath

public boolean willSkipClasspath()
Returns true if no lookups are performed in the classpath.


setSkipClasspath

public void setSkipClasspath(boolean skipClasspath)
Sets "skipClasspath" property.


getClassLoader

public ClassLoader getClassLoader()
Returns the ClassLoader associated with this ResourceLocator.


setClassLoader

public void setClassLoader(ClassLoader classLoader)
Sets ClassLoader used to locate resources. If null is passed, the ClassLoader of the ResourceLocator class will be used.


willSkipAbsolutePath

public boolean willSkipAbsolutePath()
Returns true if no lookups are performed using path as absolute path.


setSkipAbsolutePath

public void setSkipAbsolutePath(boolean skipAbsPath)
Sets "skipAbsolutePath" property.


addClassPath

public void addClassPath(String customPath)
Adds a custom path for class path lookups. Format should be "my/package/name" without leading "/".


addFilesystemPath

public void addFilesystemPath(String path)
Adds the given String as a custom path for filesystem lookups. The path can be relative or absolute and is not checked for existence.

Throws:
IllegalArgumentException - if path is null.

addFilesystemPath

public void addFilesystemPath(File path)
Adds the given directory as a path for filesystem lookups. The directory is checked for existence.

Throws:
IllegalArgumentException - if path is null, not a directory or not readable.


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.