org.apache.ibatis.io
Class DefaultVFS

java.lang.Object
  extended by org.apache.ibatis.io.VFS
      extended by org.apache.ibatis.io.DefaultVFS

public class DefaultVFS
extends VFS

A default implementation of VFS that works for most application servers.

Author:
Ben Gunter

Field Summary
 
Fields inherited from class org.apache.ibatis.io.VFS
IMPLEMENTATIONS, USER_IMPLEMENTATIONS
 
Constructor Summary
DefaultVFS()
           
 
Method Summary
protected  URL findJarForResource(URL url)
          Attempts to deconstruct the given URL to find a JAR file containing the resource referenced by the URL.
protected  String getPackagePath(String packageName)
          Converts a Java package name to a path that can be looked up with a call to ClassLoader.getResources(String).
protected  boolean isJar(URL url)
          Returns true if the resource located at the given URL is a JAR file.
protected  boolean isJar(URL url, byte[] buffer)
          Returns true if the resource located at the given URL is a JAR file.
 boolean isValid()
          Return true if the VFS implementation is valid for the current environment.
 List<String> list(URL url, String path)
          Recursively list the full resource path of all the resources that are children of the resource identified by a URL.
protected  List<String> listResources(JarInputStream jar, String path)
          List the names of the entries in the given JarInputStream that begin with the specified path.
 
Methods inherited from class org.apache.ibatis.io.VFS
addImplClass, getClass, getInstance, getMethod, getResources, invoke, list
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultVFS

public DefaultVFS()
Method Detail

isValid

public boolean isValid()
Description copied from class: VFS
Return true if the VFS implementation is valid for the current environment.

Specified by:
isValid in class VFS

list

public List<String> list(URL url,
                         String path)
                  throws IOException
Description copied from class: VFS
Recursively list the full resource path of all the resources that are children of the resource identified by a URL.

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

listResources

protected List<String> listResources(JarInputStream jar,
                                     String path)
                              throws IOException
List the names of the entries in the given JarInputStream that begin with the specified path. Entries will match with or without a leading slash.

Parameters:
jar - The JAR input stream
path - The leading path to match
Returns:
The names of all the matching entries
Throws:
IOException - If I/O errors occur

findJarForResource

protected URL findJarForResource(URL url)
                          throws MalformedURLException
Attempts to deconstruct the given URL to find a JAR file containing the resource referenced by the URL. That is, assuming the URL references a JAR entry, this method will return a URL that references the JAR file containing the entry. If the JAR cannot be located, then this method returns null.

Parameters:
url - The URL of the JAR entry.
Returns:
The URL of the JAR file, if one is found. Null if not.
Throws:
MalformedURLException

getPackagePath

protected String getPackagePath(String packageName)
Converts a Java package name to a path that can be looked up with a call to ClassLoader.getResources(String).

Parameters:
packageName - The Java package name to convert to a path

isJar

protected boolean isJar(URL url)
Returns true if the resource located at the given URL is a JAR file.

Parameters:
url - The URL of the resource to test.

isJar

protected boolean isJar(URL url,
                        byte[] buffer)
Returns true if the resource located at the given URL is a JAR file.

Parameters:
url - The URL of the resource to test.
buffer - A buffer into which the first few bytes of the resource are read. The buffer must be at least the size of JAR_MAGIC. (The same buffer may be reused for multiple calls as an optimization.)


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