Package org.apache.ibatis.io
Class DefaultVFS
- java.lang.Object
-
- org.apache.ibatis.io.VFS
-
- org.apache.ibatis.io.DefaultVFS
-
-
Field Summary
-
Fields inherited from class org.apache.ibatis.io.VFS
IMPLEMENTATIONS, USER_IMPLEMENTATIONS
-
-
Constructor Summary
Constructors Constructor Description DefaultVFS()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected URLfindJarForResource(URL url)Attempts to deconstruct the given URL to find a JAR file containing the resource referenced by the URL.protected StringgetPackagePath(String packageName)Converts a Java package name to a path that can be looked up with a call toClassLoader.getResources(String).protected booleanisJar(URL url)Returns true if the resource located at the given URL is a JAR file.protected booleanisJar(URL url, byte[] buffer)Returns true if the resource located at the given URL is a JAR file.booleanisValid()Return true if theVFSimplementation 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 givenJarInputStreamthat begin with the specifiedpath.-
Methods inherited from class org.apache.ibatis.io.VFS
addImplClass, getClass, getInstance, getMethod, getResources, invoke, list
-
-
-
-
Method Detail
-
isValid
public boolean isValid()
Description copied from class:VFSReturn true if theVFSimplementation is valid for the current environment.
-
list
public List<String> list(URL url, String path) throws IOException
Description copied from class:VFSRecursively list the full resource path of all the resources that are children of the resource identified by a URL.- Specified by:
listin classVFS- 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 toVFS.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 givenJarInputStreamthat begin with the specifiedpath. Entries will match with or without a leading slash.- Parameters:
jar- The JAR input streampath- 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- the malformed URL exception
-
getPackagePath
protected String getPackagePath(String packageName)
Converts a Java package name to a path that can be looked up with a call toClassLoader.getResources(String).- Parameters:
packageName- The Java package name to convert to a path- Returns:
- the package 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.- Returns:
- true, if is jar
-
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 ofJAR_MAGIC. (The same buffer may be reused for multiple calls as an optimization.)- Returns:
- true, if is jar
-
-