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 Object

Version:
  $Rev$ $Date$
Author:
  David Blevins

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

Method Summary
`URL` | `find(String uri)`
`List<URL>` | `findAll(String uri)`
`List<Class>` | `findAllClasses(String uri)` Executes findAllStrings assuming the strings are the names of a classes that should be loaded and returned.
`List<Class>` | `findAllImplementations(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.
`List<Properties>` | `findAllProperties(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.
`List<String>` | `findAllStrings(String uri)` Reads the contents of the found URLs as a list of `String`'s and returns them.
`List<Class>` | `findAvailableClasses(String uri)` Executes findAvailableStrings assuming the strings are the names of a classes that should be loaded and returned.
`List<Class>` | `findAvailableImplementations(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.
`List<Properties>` | `findAvailableProperties(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.
`List<String>` | `findAvailableStrings(String uri)` Reads the contents of the found URLs as a Strings and returns them.
`Class` | `findClass(String uri)` Executes `findString(String)` assuming the contents URL found is the name of a class that should be loaded and returned.
`Class` | `findImplementation(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.
`Set<String>` | `findPackages(String uri)` Gets a list of subpckages from jars or dirs
`Map<URL,Set<String>>` | `findPackagesMap(String uri)` Gets a list of subpckages from jars or dirs
`Properties` | `findProperties(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");
`String` | `findString(String uri)` Reads the contents of the URL as a `String`'s and returns it.
`Map<String,URL>` | `getResourcesMap(String uri)`
`List<String>` | `getResourcesNotLoaded()` Returns a list of resources that could not be loaded in the last invoked findAvailable* or mapAvailable* methods.
`Map<String,Class>` | `mapAllClasses(String uri)` Executes mapAllStrings assuming the value of each entry in the map is the name of a class that should be loaded.
`Map<String,Class>` | `mapAllImplementations(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.
`Map<String,Properties>` | `mapAllProperties(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.
`Map<String,String>` | `mapAllStrings(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.
`Map<String,Class>` | `mapAvailableClasses(String uri)` Executes mapAvailableStrings assuming the value of each entry in the map is the name of a class that should be loaded.
`Map<String,Class>` | `mapAvailableImplementations(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.
`Map<String,Properties>` | `mapAvailableProperties(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.
`Map<String,String>` | `mapAvailableStrings(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(URL... urls)

### ResourceFinder

    public ResourceFinder(String path)

### ResourceFinder

    public ResourceFinder(String path,
                          URL... urls)

### ResourceFinder

    public ResourceFinder(String path,
                          ClassLoaderInterface classLoaderInterface)

### ResourceFinder

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

Method Detail

### getResourcesNotLoaded

    public List<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 URL find(String uri)
             throws IOException

  Throws:
    `IOException`

### findAll

    public List<URL> findAll(String uri)
                      throws IOException

  Throws:
    `IOException`

### findString

    public String findString(String uri)
                      throws IOException

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

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

### findAllStrings

    public List<String> findAllStrings(String uri)
                                throws 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:
    `IOException` - if any of the found URLs are unable to be read.

### findAvailableStrings

    public List<String> findAvailableStrings(String uri)
                                      throws 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:
    `IOException` - if classLoader.getResources throws an exception

### mapAllStrings

    public Map<String,String> mapAllStrings(String uri)
                                     throws 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:
    `IOException` - if any of the urls cannot be read

### mapAvailableStrings

    public Map<String,String> mapAvailableStrings(String uri)
                                           throws 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:
    `IOException` - if classLoader.getResources throws an exception

### findClass

    public Class findClass(String uri)
                    throws IOException,
                           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:
    `IOException`
    `ClassNotFoundException`

### findAllClasses

    public List<Class> findAllClasses(String uri)
                               throws IOException,
                                      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:
    `IOException`
    `ClassNotFoundException`

### findAvailableClasses

    public List<Class> findAvailableClasses(String uri)
                                     throws 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:
    `IOException` - if classLoader.getResources throws an exception

### mapAllClasses

    public Map<String,Class> mapAllClasses(String uri)
                                    throws IOException,
                                           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:
    `IOException`
    `ClassNotFoundException`

### mapAvailableClasses

    public Map<String,Class> mapAvailableClasses(String uri)
                                          throws 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:
    `IOException` - if classLoader.getResources throws an exception

### findImplementation

    public Class findImplementation(Class interfase)
                             throws IOException,
                                    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:
    `IOException` - if the URL cannot be read
    `ClassNotFoundException` - if the class found is not loadable
    `ClassCastException` - if the class found is not assignable to the specified superclass or interface

### findAllImplementations

    public List<Class> findAllImplementations(Class interfase)
                                       throws IOException,
                                              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:
    `IOException` - if the URL cannot be read
    `ClassNotFoundException` - if the class found is not loadable
    `ClassCastException` - if the class found is not assignable to the specified superclass or interface

### findAvailableImplementations

    public List<Class> findAvailableImplementations(Class interfase)
                                             throws 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:
    `IOException` - if classLoader.getResources throws an exception

### mapAllImplementations

    public Map<String,Class> mapAllImplementations(Class interfase)
                                            throws IOException,
                                                   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:
    `IOException` - if the URL cannot be read
    `ClassNotFoundException` - if the class found is not loadable
    `ClassCastException` - if the class found is not assignable to the specified superclass or interface

### mapAvailableImplementations

    public Map<String,Class> mapAvailableImplementations(Class interfase)
                                                  throws 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:
    `IOException` - if classLoader.getResources throws an exception

### findProperties

    public Properties findProperties(String uri)
                              throws 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:
    `IOException` - if the URL cannot be read or is not in properties file format

### findAllProperties

    public List<Properties> findAllProperties(String uri)
                                       throws 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:
    `IOException` - if the URL cannot be read or is not in properties file format

### findAvailableProperties

    public List<Properties> findAvailableProperties(String uri)
                                             throws 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:
    `IOException` - if classLoader.getResources throws an exception

### mapAllProperties

    public Map<String,Properties> mapAllProperties(String uri)
                                            throws 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:
    `IOException` - if the URL cannot be read or is not in properties file format

### mapAvailableProperties

    public Map<String,Properties> mapAvailableProperties(String uri)
                                                  throws 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:
    `IOException` - if classLoader.getResources throws an exception

### getResourcesMap

    public Map<String,URL> getResourcesMap(String uri)
                                    throws IOException

  Throws:
    `IOException`

### findPackages

    public Set<String> findPackages(String uri)
                             throws IOException

  Gets a list of subpckages from jars or dirs

  Throws:
    `IOException`

### findPackagesMap

    public Map<URL,Set<String>> findPackagesMap(String uri)
                                         throws IOException

  Gets a list of subpckages from jars or dirs

  Throws:
    `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–2017 Apache Software Foundation. All rights reserved.