org.apache.ibatis.io
Class VFS

java.lang.Object
  extended by org.apache.ibatis.io.VFS
Direct Known Subclasses:
DefaultVFS, JBoss6VFS

public abstract class VFS
extends Object

Provides a very simple API for accessing resources within an application server.

Author:
Ben Gunter

Field Summary
static Class<?>[] IMPLEMENTATIONS
          The built-in implementations.
static List<Class<? extends VFS>> USER_IMPLEMENTATIONS
          The list to which implementations are added by addImplClass(Class).
 
Constructor Summary
VFS()
           
 
Method Summary
static void addImplClass(Class<? extends VFS> clazz)
          Adds the specified class to the list of VFS implementations.
protected static Class<?> getClass(String className)
          Get a class by name.
static VFS getInstance()
          Get the singleton VFS instance.
protected static Method getMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes)
          Get a method by name and parameter types.
protected static List<URL> getResources(String path)
          Get a list of URLs from the context classloader for all the resources found at the specified path.
protected static
<T> T
invoke(Method method, Object object, Object... parameters)
          Invoke a method on an object and return whatever it returns.
abstract  boolean isValid()
          Return true if the VFS implementation is valid for the current environment.
 List<String> list(String path)
          Recursively list the full resource path of all the resources that are children of all the resources found at the specified path.
protected abstract  List<String> list(URL url, String forPath)
          Recursively list the full resource path of all the resources that are children of the resource identified by a URL.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IMPLEMENTATIONS

public static final Class<?>[] IMPLEMENTATIONS
The built-in implementations.


USER_IMPLEMENTATIONS

public static final List<Class<? extends VFS>> USER_IMPLEMENTATIONS
The list to which implementations are added by addImplClass(Class).

Constructor Detail

VFS

public VFS()
Method Detail

getInstance

public static VFS getInstance()
Get the singleton VFS instance. If no VFS implementation can be found for the current environment, then this method returns null.


addImplClass

public static void addImplClass(Class<? extends VFS> clazz)
Adds the specified class to the list of VFS implementations. Classes added in this manner are tried in the order they are added and before any of the built-in implementations.

Parameters:
clazz - The VFS implementation class to add.

getClass

protected static Class<?> getClass(String className)
Get a class by name. If the class is not found then return null.


getMethod

protected static Method getMethod(Class<?> clazz,
                                  String methodName,
                                  Class<?>... parameterTypes)
Get a method by name and parameter types. If the method is not found then return null.

Parameters:
clazz - The class to which the method belongs.
methodName - The name of the method.
parameterTypes - The types of the parameters accepted by the method.

invoke

protected static <T> T invoke(Method method,
                              Object object,
                              Object... parameters)
                   throws IOException,
                          RuntimeException
Invoke a method on an object and return whatever it returns.

Parameters:
method - The method to invoke.
object - The instance or class (for static methods) on which to invoke the method.
parameters - The parameters to pass to the method.
Returns:
Whatever the method returns.
Throws:
IOException - If I/O errors occur
StripesRuntimeException - If anything else goes wrong
RuntimeException

getResources

protected static List<URL> getResources(String path)
                                 throws IOException
Get a list of URLs from the context classloader for all the resources found at the specified path.

Parameters:
path - The resource path.
Returns:
A list of URLs, as returned by ClassLoader.getResources(String).
Throws:
IOException - If I/O errors occur

isValid

public abstract boolean isValid()
Return true if the VFS implementation is valid for the current environment.


list

protected abstract List<String> list(URL url,
                                     String forPath)
                              throws IOException
Recursively list the full resource path of all the resources that are children of the resource identified by a URL.

Parameters:
url - The URL that identifies the resource to list.
forPath - The path to the resource that is identified by the URL. Generally, this is the value passed to getResources(String) to get the resource URL.
Returns:
A list containing the names of the child resources.
Throws:
IOException - If I/O errors occur

list

public List<String> list(String path)
                  throws IOException
Recursively list the full resource path of all the resources that are children of all the resources found at the specified path.

Parameters:
path - The path of the resource(s) to list.
Returns:
A list containing the names of the child resources.
Throws:
IOException - If I/O errors occur


Copyright © 2010-2012 MyBatis.org. All Rights Reserved.