Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.opensymphony.xwork2.util.finder
Class ResourceFinder

    java.lang.Object
      com.opensymphony.xwork2.util.finder.ResourceFinder

    public class ResourceFinder

extends java.lang.Object

Version:
  $Rev: 894090 $ $Date: 2009-12-27 19:18:29 +0100 (Sun, 27 Dec 2009) $
Author:
  David Blevins

Constructor Summary
`ResourceFinder(java.lang.String path)`
`ResourceFinder(java.lang.String path, ClassLoaderInterface classLoaderInterface)`
`ResourceFinder(java.lang.String path, ClassLoaderInterface classLoaderInterface, java.net.URL... urls)`
`ResourceFinder(java.lang.String path, java.net.URL... urls)`
`ResourceFinder(java.net.URL... urls)`

Method Summary
`java.net.URL` | `find(java.lang.String uri)`
`java.util.List<java.net.URL>` | `findAll(java.lang.String uri)`
`java.util.List<java.lang.Class>` | `findAllClasses(java.lang.String uri)` Executes findAllStrings assuming the strings are the names of a classes that should be loaded and returned.
`java.util.List<java.lang.Class>` | `findAllImplementations(java.lang.Class interfase)` Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.
`java.util.List<java.util.Properties>` | `findAllProperties(java.lang.String uri)` Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will cause an exception to be thrown.
`java.util.List<java.lang.String>` | `findAllStrings(java.lang.String uri)` Reads the contents of the found URLs as a list of `String`'s and returns them.
`java.util.List<java.lang.Class>` | `findAvailableClasses(java.lang.String uri)` Executes findAvailableStrings assuming the strings are the names of a classes that should be loaded and returned.
`java.util.List<java.lang.Class>` | `findAvailableImplementations(java.lang.Class interfase)` Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.
`java.util.List<java.util.Properties>` | `findAvailableProperties(java.lang.String uri)` Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection.
`java.util.List<java.lang.String>` | `findAvailableStrings(java.lang.String uri)` Reads the contents of the found URLs as a Strings and returns them.
`java.lang.Class` | `findClass(java.lang.String uri)` Executes `findString(String)` assuming the contents URL found is the name of a class that should be loaded and returned.
`java.lang.Class` | `findImplementation(java.lang.Class interfase)` Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.
`java.util.Set<java.lang.String>` | `findPackages(java.lang.String uri)` Gets a list of subpckages from jars or dirs
`java.util.Map<java.net.URL,java.util.Set<java.lang.String>>` | `findPackagesMap(java.lang.String uri)` Gets a list of subpckages from jars or dirs
`java.util.Properties` | `findProperties(java.lang.String uri)` Finds the corresponding resource and reads it in as a properties file Example classpath: META-INF/widget.properties ResourceFinder finder = new ResourceFinder("META-INF/"); Properties widgetProps = finder.findProperties("widget.properties");
`java.lang.String` | `findString(java.lang.String uri)` Reads the contents of the URL as a `String`'s and returns it.
`java.util.Map<java.lang.String,java.net.URL>` | `getResourcesMap(java.lang.String uri)`
`java.util.List<java.lang.String>` | `getResourcesNotLoaded()` Returns a list of resources that could not be loaded in the last invoked findAvailable* or mapAvailable* methods.
`java.util.Map<java.lang.String,java.lang.Class>` | `mapAllClasses(java.lang.String uri)` Executes mapAllStrings assuming the value of each entry in the map is the name of a class that should be loaded.
`java.util.Map<java.lang.String,java.lang.Class>` | `mapAllImplementations(java.lang.Class interfase)` Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.
`java.util.Map<java.lang.String,java.util.Properties>` | `mapAllProperties(java.lang.String uri)` Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will cause an exception to be thrown.
`java.util.Map<java.lang.String,java.lang.String>` | `mapAllStrings(java.lang.String uri)` Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.
`java.util.Map<java.lang.String,java.lang.Class>` | `mapAvailableClasses(java.lang.String uri)` Executes mapAvailableStrings assuming the value of each entry in the map is the name of a class that should be loaded.
`java.util.Map<java.lang.String,java.lang.Class>` | `mapAvailableImplementations(java.lang.Class interfase)` Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.
`java.util.Map<java.lang.String,java.util.Properties>` | `mapAvailableProperties(java.lang.String uri)` Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection.
`java.util.Map<java.lang.String,java.lang.String>` | `mapAvailableStrings(java.lang.String uri)` Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ResourceFinder

    public ResourceFinder(java.net.URL... urls)

### ResourceFinder

    public ResourceFinder(java.lang.String path)

### ResourceFinder

    public ResourceFinder(java.lang.String path,
                          java.net.URL... urls)

### ResourceFinder

    public ResourceFinder(java.lang.String path,
                          ClassLoaderInterface classLoaderInterface)

### ResourceFinder

    public ResourceFinder(java.lang.String path,
                          ClassLoaderInterface classLoaderInterface,
                          java.net.URL... urls)

Method Detail

### getResourcesNotLoaded

    public java.util.List<java.lang.String> getResourcesNotLoaded()

  Returns a list of resources that could not be loaded in the last invoked findAvailable* or mapAvailable* methods.

  The list will only contain entries of resources that match the requirements of the last invoked findAvailable* or mapAvailable* methods, but were unable to be loaded and included in their results.

  The list returned is unmodifiable and the results of this method will change after each invocation of a findAvailable* or mapAvailable* methods.

  This method is not thread safe.

### find

    public java.net.URL find(java.lang.String uri)
                      throws java.io.IOException

  Throws:
    `java.io.IOException`

### findAll

    public java.util.List<java.net.URL> findAll(java.lang.String uri)
                                         throws java.io.IOException

  Throws:
    `java.io.IOException`

### findString

    public java.lang.String findString(java.lang.String uri)
                                throws java.io.IOException

  Reads the contents of the URL as a `String`'s and returns it.

  Parameters:
    `uri` -
  Returns:
    a stringified content of a resource
  Throws:
    `java.io.IOException` - if a resource pointed out by the uri param could not be find
  See Also:
    `ClassLoader.getResource(String)`

### findAllStrings

    public java.util.List<java.lang.String> findAllStrings(java.lang.String uri)
                                                    throws java.io.IOException

  Reads the contents of the found URLs as a list of `String`'s and returns them.

  Parameters:
    `uri` -
  Returns:
    a list of the content of each resource URL found
  Throws:
    `java.io.IOException` - if any of the found URLs are unable to be read.

### findAvailableStrings

    public java.util.List<java.lang.String> findAvailableStrings(java.lang.String uri)
                                                          throws java.io.IOException

  Reads the contents of the found URLs as a Strings and returns them. Individual URLs that cannot be read are skipped and added to the list of 'resourcesNotLoaded'

  Parameters:
    `uri` -
  Returns:
    a list of the content of each resource URL found
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### mapAllStrings

    public java.util.Map<java.lang.String,java.lang.String> mapAllStrings(java.lang.String uri)
                                                                   throws java.io.IOException

  Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.

  Any URLs that cannot be read will cause an exception to be thrown.

  Example classpath:

  META-INF/serializables/one META-INF/serializables/two META-INF/serializables/three META-INF/serializables/four/foo.txt

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("serializables"); map.contains("one"); // true map.contains("two"); // true map.contains("three"); // true map.contains("four"); // false

  Parameters:
    `uri` -
  Returns:
    a list of the content of each resource URL found
  Throws:
    `java.io.IOException` - if any of the urls cannot be read

### mapAvailableStrings

    public java.util.Map<java.lang.String,java.lang.String> mapAvailableStrings(java.lang.String uri)
                                                                         throws java.io.IOException

  Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.

  Individual URLs that cannot be read are skipped and added to the list of 'resourcesNotLoaded'

  Example classpath:

  META-INF/serializables/one META-INF/serializables/two # not readable META-INF/serializables/three META-INF/serializables/four/foo.txt

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("serializables"); map.contains("one"); // true map.contains("two"); // false map.contains("three"); // true map.contains("four"); // false

  Parameters:
    `uri` -
  Returns:
    a list of the content of each resource URL found
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### findClass

    public java.lang.Class findClass(java.lang.String uri)
                              throws java.io.IOException,
                                     java.lang.ClassNotFoundException

  Executes `findString(String)` assuming the contents URL found is the name of a class that should be loaded and returned.

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException`
    `java.lang.ClassNotFoundException`

### findAllClasses

    public java.util.List<java.lang.Class> findAllClasses(java.lang.String uri)
                                                   throws java.io.IOException,
                                                          java.lang.ClassNotFoundException

  Executes findAllStrings assuming the strings are the names of a classes that should be loaded and returned.

  Any URL or class that cannot be loaded will cause an exception to be thrown.

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException`
    `java.lang.ClassNotFoundException`

### findAvailableClasses

    public java.util.List<java.lang.Class> findAvailableClasses(java.lang.String uri)
                                                         throws java.io.IOException

  Executes findAvailableStrings assuming the strings are the names of a classes that should be loaded and returned.

  Any class that cannot be loaded will be skipped and placed in the 'resourcesNotLoaded' collection.

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### mapAllClasses

    public java.util.Map<java.lang.String,java.lang.Class> mapAllClasses(java.lang.String uri)
                                                                  throws java.io.IOException,
                                                                         java.lang.ClassNotFoundException

  Executes mapAllStrings assuming the value of each entry in the map is the name of a class that should be loaded.

  Any class that cannot be loaded will be cause an exception to be thrown.

  Example classpath:

  META-INF/xmlparsers/xerces META-INF/xmlparsers/crimson

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("xmlparsers"); map.contains("xerces"); // true map.contains("crimson"); // true Class xercesClass = map.get("xerces"); Class crimsonClass = map.get("crimson");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException`
    `java.lang.ClassNotFoundException`

### mapAvailableClasses

    public java.util.Map<java.lang.String,java.lang.Class> mapAvailableClasses(java.lang.String uri)
                                                                        throws java.io.IOException

  Executes mapAvailableStrings assuming the value of each entry in the map is the name of a class that should be loaded.

  Any class that cannot be loaded will be skipped and placed in the 'resourcesNotLoaded' collection.

  Example classpath:

  META-INF/xmlparsers/xerces META-INF/xmlparsers/crimson

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("xmlparsers"); map.contains("xerces"); // true map.contains("crimson"); // true Class xercesClass = map.get("xerces"); Class crimsonClass = map.get("crimson");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### findImplementation

    public java.lang.Class findImplementation(java.lang.Class interfase)
                                       throws java.io.IOException,
                                              java.lang.ClassNotFoundException

  Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.

  Any class that cannot be loaded will be cause an exception to be thrown.

  Example classpath:

  META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.OutputStream

  ResourceFinder finder = new ResourceFinder("META-INF/"); Class clazz = finder.findImplementation(java.io.InputStream.class); clazz.getName(); // returns "org.acme.AcmeInputStream"

  Parameters:
    `interfase` - a superclass or interface
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read
    `java.lang.ClassNotFoundException` - if the class found is not loadable
    `java.lang.ClassCastException` - if the class found is not assignable to the specified superclass or interface

### findAllImplementations

    public java.util.List<java.lang.Class> findAllImplementations(java.lang.Class interfase)
                                                           throws java.io.IOException,
                                                                  java.lang.ClassNotFoundException

  Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.

  Any class that cannot be loaded or assigned to the specified interface will be cause an exception to be thrown.

  Example classpath:

  META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream

  ResourceFinder finder = new ResourceFinder("META-INF/"); List classes = finder.findAllImplementations(java.io.InputStream.class); classes.contains("org.acme.AcmeInputStream"); // true classes.contains("org.widget.NeatoInputStream"); // true classes.contains("com.foo.BarInputStream"); // true

  Parameters:
    `interfase` - a superclass or interface
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read
    `java.lang.ClassNotFoundException` - if the class found is not loadable
    `java.lang.ClassCastException` - if the class found is not assignable to the specified superclass or interface

### findAvailableImplementations

    public java.util.List<java.lang.Class> findAvailableImplementations(java.lang.Class interfase)
                                                                 throws java.io.IOException

  Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.

  Any class that cannot be loaded or are not assignable to the specified class will be skipped and placed in the 'resourcesNotLoaded' collection.

  Example classpath:

  META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream

  ResourceFinder finder = new ResourceFinder("META-INF/"); List classes = finder.findAllImplementations(java.io.InputStream.class); classes.contains("org.acme.AcmeInputStream"); // true classes.contains("org.widget.NeatoInputStream"); // true classes.contains("com.foo.BarInputStream"); // true

  Parameters:
    `interfase` - a superclass or interface
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### mapAllImplementations

    public java.util.Map<java.lang.String,java.lang.Class> mapAllImplementations(java.lang.Class interfase)
                                                                          throws java.io.IOException,
                                                                                 java.lang.ClassNotFoundException

  Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.

  Any class that cannot be loaded or assigned to the specified interface will be cause an exception to be thrown.

  Example classpath:

  META-INF/java.net.URLStreamHandler/jar META-INF/java.net.URLStreamHandler/file META-INF/java.net.URLStreamHandler/http

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); Class jarUrlHandler = map.get("jar"); Class fileUrlHandler = map.get("file"); Class httpUrlHandler = map.get("http");

  Parameters:
    `interfase` - a superclass or interface
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read
    `java.lang.ClassNotFoundException` - if the class found is not loadable
    `java.lang.ClassCastException` - if the class found is not assignable to the specified superclass or interface

### mapAvailableImplementations

    public java.util.Map<java.lang.String,java.lang.Class> mapAvailableImplementations(java.lang.Class interfase)
                                                                                throws java.io.IOException

  Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.

  Any class that cannot be loaded or are not assignable to the specified class will be skipped and placed in the 'resourcesNotLoaded' collection.

  Example classpath:

  META-INF/java.net.URLStreamHandler/jar META-INF/java.net.URLStreamHandler/file META-INF/java.net.URLStreamHandler/http

  ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); Class jarUrlHandler = map.get("jar"); Class fileUrlHandler = map.get("file"); Class httpUrlHandler = map.get("http");

  Parameters:
    `interfase` - a superclass or interface
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### findProperties

    public java.util.Properties findProperties(java.lang.String uri)
                                        throws java.io.IOException

  Finds the corresponding resource and reads it in as a properties file

  Example classpath:

  META-INF/widget.properties

  ResourceFinder finder = new ResourceFinder("META-INF/"); Properties widgetProps = finder.findProperties("widget.properties");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read or is not in properties file format

### findAllProperties

    public java.util.List<java.util.Properties> findAllProperties(java.lang.String uri)
                                                           throws java.io.IOException

  Finds the corresponding resources and reads them in as a properties files

  Any URL that cannot be read in as a properties file will cause an exception to be thrown.

  Example classpath:

  META-INF/app.properties META-INF/app.properties META-INF/app.properties

  ResourceFinder finder = new ResourceFinder("META-INF/"); List appProps = finder.findAllProperties("app.properties");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read or is not in properties file format

### findAvailableProperties

    public java.util.List<java.util.Properties> findAvailableProperties(java.lang.String uri)
                                                                 throws java.io.IOException

  Finds the corresponding resources and reads them in as a properties files

  Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection.

  Example classpath:

  META-INF/app.properties META-INF/app.properties META-INF/app.properties

  ResourceFinder finder = new ResourceFinder("META-INF/"); List appProps = finder.findAvailableProperties("app.properties");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### mapAllProperties

    public java.util.Map<java.lang.String,java.util.Properties> mapAllProperties(java.lang.String uri)
                                                                          throws java.io.IOException

  Finds the corresponding resources and reads them in as a properties files

  Any URL that cannot be read in as a properties file will cause an exception to be thrown.

  Example classpath:

  META-INF/jdbcDrivers/oracle.properties META-INF/jdbcDrivers/mysql.props META-INF/jdbcDrivers/derby

  ResourceFinder finder = new ResourceFinder("META-INF/"); List driversList = finder.findAvailableProperties("jdbcDrivers"); Properties oracleProps = driversList.get("oracle.properties"); Properties mysqlProps = driversList.get("mysql.props"); Properties derbyProps = driversList.get("derby");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if the URL cannot be read or is not in properties file format

### mapAvailableProperties

    public java.util.Map<java.lang.String,java.util.Properties> mapAvailableProperties(java.lang.String uri)
                                                                                throws java.io.IOException

  Finds the corresponding resources and reads them in as a properties files

  Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection.

  Example classpath:

  META-INF/jdbcDrivers/oracle.properties META-INF/jdbcDrivers/mysql.props META-INF/jdbcDrivers/derby

  ResourceFinder finder = new ResourceFinder("META-INF/"); List driversList = finder.findAvailableProperties("jdbcDrivers"); Properties oracleProps = driversList.get("oracle.properties"); Properties mysqlProps = driversList.get("mysql.props"); Properties derbyProps = driversList.get("derby");

  Parameters:
    `uri` -
  Returns:
  Throws:
    `java.io.IOException` - if classLoader.getResources throws an exception

### getResourcesMap

    public java.util.Map<java.lang.String,java.net.URL> getResourcesMap(java.lang.String uri)
                                                                 throws java.io.IOException

  Throws:
    `java.io.IOException`

### findPackages

    public java.util.Set<java.lang.String> findPackages(java.lang.String uri)
                                                 throws java.io.IOException

  Gets a list of subpckages from jars or dirs

  Throws:
    `java.io.IOException`

### findPackagesMap

    public java.util.Map<java.net.URL,java.util.Set<java.lang.String>> findPackagesMap(java.lang.String uri)
                                                                                throws java.io.IOException

  Gets a list of subpckages from jars or dirs

  Throws:
    `java.io.IOException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.