|
jaulib v1.4.0-2-g788cf73
Jau Support Library (C++, Java, ..)
|
See base class PiggybackURLConnection for motivation.
More...
Public Member Functions | |
| AssetURLConnection (final URL url, final AssetURLContext implHelper) | |
| String | getEntryName () throws IOException |
Public Member Functions inherited from org.jau.net.PiggybackURLConnection< AssetURLContext > | |
| synchronized void | connect () throws IOException |
| InputStream | getInputStream () throws IOException |
| abstract String | getEntryName () throws IOException |
| Returns the entry name of the asset. | |
| URL | getSubProtocol () throws IOException |
| Returns the resolved sub protocol of the asset or null, ie: | |
Additional Inherited Members | |
Protected Member Functions inherited from org.jau.net.PiggybackURLConnection< AssetURLContext > | |
| PiggybackURLConnection (final URL url, final I context) | |
Protected Attributes inherited from org.jau.net.PiggybackURLConnection< AssetURLContext > | |
| URL | subUrl |
| URLConnection | subConn |
| I | context |
See base class PiggybackURLConnection for motivation.
asset resource location protocol connection.
See AssetURLContext#resolve(String) how resources are being resolved.
Assuming the plain asset entry test/lala.txt is being resolved by a class test.LaLaTest, ie. using the asset aware ClassLoader, one would use the following asset aware filesystem layout:
test/LaLaTest.class assets/test/lala.txt
The above maybe on a plain filesystem, or within a JAR or an APK file, e.g. jogamp.test.apk.
The above would result in the following possible URLs reflecting the plain and resolved state of the asset URL:
0 Entry test/lala.txt 1 Plain asset:test/lala.txt 2 Resolved asset:jar:file:/data/app/jogamp.test.apk!/assets/test/lala.txt
The sub protocol URL of the resolved asset
3 Sub-URL jar:file:/data/app/jogamp.test.apk!/assets/test/lala.txt
can be retrieved using getSubProtocol().
In all above cases, the asset entry is test/lala.txt, which can be retrieved via getEntryName().
An asset URL is resolved using AssetURLContext#getClassLoader().getResource(String), hence the only requirement for an implementation is to have an asset aware ClassLoader as described in AssetURLContext#getClassLoader().
Since the asset protocol is currently not being implemented on all platform with an appropriate ClassLoader, a user shall not create the asset URL manually.
The Android ClassLoader jogamp.android.launcher.AssetDexClassLoader resolves the resource as an asset URL in it's ClassLoader#findResource(String) implementation.
Currently we attach our asset java.net.URLStreamHandlerFactory to allow java.net.URL to handle asset URLs via our asset java.net.URLStreamHandler implementation.
Definition at line 97 of file AssetURLConnection.java.
| org.jau.net.AssetURLConnection.AssetURLConnection | ( | final URL | url, |
| final AssetURLContext | implHelper ) |
Definition at line 99 of file AssetURLConnection.java.
| String org.jau.net.AssetURLConnection.getEntryName | ( | ) | throws IOException |
Definition at line 104 of file AssetURLConnection.java.