Top Description Fields Constructors Methods
com.jogamp.common.net

public Class AssetURLConnection

extends PiggybackURLConnection<AssetURLContext>
Class Inheritance
Imports
java.io.IOException, java.net.JarURLConnection, .URL

See base class PiggybackURLConnection for motivation.

asset resource location protocol connection.

See AssetURLContext#resolve(String) how resources are being resolved.

Example:

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().

General Implementation Notes:

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().

Warning:

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.

Android Implementation Notes:

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.

Field Summary

Inherited from com.jogamp.common.net.PiggybackURLConnection:
contextsubConnsubUrl

Constructor Summary

AccessConstructor and Description
public
AssetURLConnection(final URL url, final AssetURLContext implHelper)

Method Summary

Modifier and TypeMethod and Description
public String
getEntryName()

Implements abstract com.jogamp.common.net.PiggybackURLConnection.getEntryName.

Returns the entry name of the asset.
Inherited from com.jogamp.common.net.PiggybackURLConnection:
connectgetInputStreamgetSubProtocol

Constructor Detail

AssetURLConnectionback to summary
public AssetURLConnection(final URL url, final AssetURLContext implHelper)

Method Detail

getEntryNameback to summary
public String getEntryName() throws IOException

Implements abstract com.jogamp.common.net.PiggybackURLConnection.getEntryName.

Doc from com.jogamp.common.net.PiggybackURLConnection.getEntryName.

Returns the entry name of the asset.

Plain     asset:test/lala.txt
Resolved  asset:jar:file:/data/app/jogamp.test.apk!/assets/test/lala.txt
Result          test/lala.txt
Annotations
@Override
Exceptions
IOException:
is not connected