jaulib v1.3.0
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. More... | |
URL | getSubProtocol () throws IOException |
Returns the resolved sub protocol of the asset or null, ie: More... | |
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 |