org.oddjob.launch
Class Locator

java.lang.Object
  extended by org.oddjob.launch.Locator

public final class Locator
extends Object

The Locator is a utility class which is used to find certain items in the environment

Author:
Conor MacNeill
Since:
Ant 1.6

Method Summary
static String fromURI(String uri)
          Constructs a file path from a file: URI.
static File getClassSource(Class c)
          Find the directory or jar file the class has been loaded from.
static URL[] getLocationURLs(File location)
          Get an array or URLs representing all of the jar files in the given location.
static URL[] getLocationURLs(File location, String[] extensions)
          Get an array or URLs representing all of the files of a given set of extensions in the given location.
static File getResourceSource(ClassLoader c, String resource)
          Find the directory or jar a give resource has been loaded from.
static File getToolsJar()
          Get the File necessary to load the Sun compiler tools.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getClassSource

public static File getClassSource(Class c)
Find the directory or jar file the class has been loaded from.

Since:
Ant 1.6
Parameters:
c - the class whose location is required.
Returns:
the file or jar with the class or null if we cannot determine the location.

getResourceSource

public static File getResourceSource(ClassLoader c,
                                     String resource)
Find the directory or jar a give resource has been loaded from.

Since:
Ant 1.6
Parameters:
c - the classloader to be consulted for the source
resource - the resource whose location is required.
Returns:
the file with the resource source or null if we cannot determine the location.

fromURI

public static String fromURI(String uri)
Constructs a file path from a file: URI.

Will be an absolute path if the given URI is absolute.

Swallows '%' that are not followed by two characters, doesn't deal with non-ASCII characters.

Since:
Ant 1.6
Parameters:
uri - the URI designating a file in the local filesystem.
Returns:
the local file system path for the file.

getToolsJar

public static File getToolsJar()
Get the File necessary to load the Sun compiler tools. If the classes are available to this class, then no additional URL is required and null is returned. This may be because the classes are explicitly in the class path or provided by the JVM directly

Returns:
the tools jar as a File if required, null otherwise

getLocationURLs

public static URL[] getLocationURLs(File location)
                             throws MalformedURLException
Get an array or URLs representing all of the jar files in the given location. If the location is a file, it is returned as the only element of the array. If the location is a directory, it is scanned for jar files

Parameters:
location - the location to scan for Jars
Returns:
an array of URLs for all jars in the given location.
Throws:
MalformedURLException - if the URLs for the jars cannot be formed

getLocationURLs

public static URL[] getLocationURLs(File location,
                                    String[] extensions)
                             throws MalformedURLException
Get an array or URLs representing all of the files of a given set of extensions in the given location. If the location is a file, it is returned as the only element of the array. If the location is a directory, it is scanned for matching files

Parameters:
location - the location to scan for files
extensions - an array of extension that are to match in the directory search
Returns:
an array of URLs of matching files
Throws:
MalformedURLException - if the URLs for the files cannot be formed