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<?>[] IMPLEMENTATIONS
    The built-in implementations.
    static List<Class<? extends VFS>> USER_IMPLEMENTATIONS
    The list to which implementations are added by addImplClass(Class).
  • Constructor Summary

    Constructors
    Constructor Description
    VFS()  
  • Method Summary

    Modifier and Type Method Description
    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 Details

    • 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 Details

    • VFS

      public VFS()
  • Method Details

    • 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.
      Returns:
      single instance of VFS
    • 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.
      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 occur
      RuntimeException - If anything else goes wrong
    • 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.
      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 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