Package com.jogamp.common.net
Class AssetURLContext
- java.lang.Object
-
- com.jogamp.common.net.AssetURLContext
-
- All Implemented Interfaces:
PiggybackURLContext
public abstract class AssetURLContext extends Object implements PiggybackURLContext
SeePiggybackURLConnectionfor description and examples.
-
-
Field Summary
Fields Modifier and Type Field Description static Stringasset_protocolThe asset URL protocol nameassetstatic Stringasset_protocol_prefixThe asset URL protocol prefixasset:static Stringassets_folderThe optional asset folder name with ending slashassets/.
-
Constructor Summary
Constructors Constructor Description AssetURLContext()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static AssetURLContextcreate(ClassLoader cl)static AssetURLStreamHandlercreateHandler(ClassLoader cl)static URLcreateURL(String path)Create an asset URL, suitable only with the registered asset URLStreamHandler.static URLcreateURL(String path, ClassLoader cl)Create an asset URL, suitable even w/o the registered asset URLStreamHandler.abstract ClassLoadergetClassLoader()Returns an asset aware ClassLoader.StringgetImplementedProtocol()Returns the specific protocol, constant for this implementation.static URLStreamHandlergetRegisteredHandler()Returns the asset handler previously set viaregisterHandler(ClassLoader), or null if none was set.static booleanregisterHandler(ClassLoader cl)Registers the generic URLStreamHandlerFactory viaGenericURLStreamHandlerFactory.register()and if successful sets the assethandlerfor the given ClassLoadercl.URLConnectionresolve(String path)Resolving path to a URL sub protocol and return it's open URLConnectionstatic URLConnectionresolve(String path, ClassLoader cl)
-
-
-
Field Detail
-
asset_protocol
public static final String asset_protocol
The asset URL protocol nameasset- See Also:
- Constant Field Values
-
asset_protocol_prefix
public static final String asset_protocol_prefix
The asset URL protocol prefixasset:- See Also:
- Constant Field Values
-
assets_folder
public static final String assets_folder
The optional asset folder name with ending slashassets/.Note that the asset folder is not used on all platforms using the asset protocol and you should not rely on it, use
AssetURLConnection.getEntryName().- See Also:
- Constant Field Values
-
-
Method Detail
-
create
public static AssetURLContext create(ClassLoader cl)
-
createHandler
public static AssetURLStreamHandler createHandler(ClassLoader cl)
-
createURL
public static URL createURL(String path, ClassLoader cl) throws MalformedURLException
Create an asset URL, suitable even w/o the registered asset URLStreamHandler.This is equivalent with:
return new URL(null, path.startsWith("asset:") ? path : "asset:" + path, new AssetURLStreamHandler(cl));- Parameters:
path- resource path, with or w/oasset:prefixcl- the ClassLoader used to resolve the location, seegetClassLoader().- Returns:
- Throws:
MalformedURLException
-
createURL
public static URL createURL(String path) throws MalformedURLException
Create an asset URL, suitable only with the registered asset URLStreamHandler.This is equivalent with:
return new URL(path.startsWith("asset:") ? path : "asset:" + path);- Parameters:
path- resource path, with or w/oasset:prefix- Returns:
- Throws:
MalformedURLException
-
getRegisteredHandler
public static URLStreamHandler getRegisteredHandler()
Returns the asset handler previously set viaregisterHandler(ClassLoader), or null if none was set.
-
registerHandler
public static boolean registerHandler(ClassLoader cl)
Registers the generic URLStreamHandlerFactory viaGenericURLStreamHandlerFactory.register()and if successful sets the assethandlerfor the given ClassLoadercl.- Returns:
- true if successful, otherwise false
-
getClassLoader
public abstract ClassLoader getClassLoader()
Returns an asset aware ClassLoader.The ClassLoader is required to find the asset resource via it's
URL findResource(String)implementation.It's
URL findResource(String)implementation shall return either an asset URLasset:sub-protocolor just the sub-protocol URL.For example, on Android, we redirect all
pathrequest to assets/path.
-
getImplementedProtocol
public String getImplementedProtocol()
Description copied from interface:PiggybackURLContextReturns the specific protocol, constant for this implementation.- Specified by:
getImplementedProtocolin interfacePiggybackURLContext
-
resolve
public URLConnection resolve(String path) throws IOException
Resolving path to a URL sub protocol and return it's open URLConnectionThis implementation attempts to resolve
pathin the following order:- as a valid URL:
new URL(path), use sub-protocol if asset URL - via ClassLoader:
getClassLoader().getResource(path), use sub-protocol if asset URL - as a File:
new File(path).toURI().toURL()
In case of using the ClassLoader (2) and if running on Android, the
assets_folderis being prepended topathif missing.- Specified by:
resolvein interfacePiggybackURLContext- Throws:
IOException
- as a valid URL:
-
resolve
public static URLConnection resolve(String path, ClassLoader cl) throws IOException
- Throws:
IOException
-
-