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 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 toClassLoader.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 theVFS
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 givenJarInputStream
that 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:VFS
Return true if theVFS
implementation is valid for the current environment.
-
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 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 givenJarInputStream
that 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
-
-