Package org.apache.ibatis.io
Class VFS
- java.lang.Object
 - 
- 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
Fields Modifier and Type Field Description static Class<?>[]IMPLEMENTATIONSThe built-in implementations.static List<Class<? extends VFS>>USER_IMPLEMENTATIONSThe list to which implementations are added byaddImplClass(Class). 
- 
Constructor Summary
Constructors Constructor Description VFS() 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static voidaddImplClass(Class<? extends VFS> clazz)Adds the specified class to the list ofVFSimplementations.protected static Class<?>getClass(String className)Get a class by name.static VFSgetInstance()Get the singletonVFSinstance.protected static MethodgetMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes)Get a method by name and parameter types.protected static List<URL>getResources(String path)Get a list ofURLs from the context classloader for all the resources found at the specified path.protected static <T> Tinvoke(Method method, Object object, Object... parameters)Invoke a method on an object and return whatever it returns.abstract booleanisValid()Return true if theVFSimplementation 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. 
 - 
 
- 
- 
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 byaddImplClass(Class). 
 - 
 
- 
Method Detail
- 
getInstance
public static VFS getInstance()
Get the singletonVFSinstance. If noVFSimplementation can be found for the current environment, then this method returns null.- Returns:
 - single instance of VFS
 
 
- 
addImplClass
public static void addImplClass(Class<? extends VFS> clazz)
Adds the specified class to the list ofVFSimplementations. Classes added in this manner are tried in the order they are added and before any of the built-in implementations.- Parameters:
 clazz- TheVFSimplementation class to add.
 
- 
getClass
protected static Class<?> getClass(String className)
Get a class by name. If the class is not found then return null.- Parameters:
 className- the class name- Returns:
 - the class
 
 
- 
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.- Returns:
 - 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.- Type Parameters:
 T- the generic type- 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 occurRuntimeException- If anything else goes wrong
 
- 
getResources
protected static List<URL> getResources(String path) throws IOException
Get a list ofURLs 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 byClassLoader.getResources(String). - Throws:
 IOException- If I/O errors occur
 
- 
isValid
public abstract boolean isValid()
Return true if theVFSimplementation is valid for the current environment.- Returns:
 - true, if is valid
 
 
- 
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 togetResources(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
 
 - 
 
 -