Class 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 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.
        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
      • 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