-
public interface PersistenceService
PersistenceService
provides methods for storing data locally on the client system, even for applications that are running in the untrusted execution environment. The service is somewhat similar to that which the cookie mechanism provides to HTML-based applications.Each entry in the persistence data store is named with a URL. This provides a similar hierarchical structure as a traditional file system.
An application is only allowed to access data stored with a URL that is based on its codebase. For example, given the codebase
http://www.mysite.com/apps/App1/
, the application would be allowed to access the data at the associated URLs:http://www.mysite.com/apps/App1/
http://www.mysite.com/apps/
http://www.mysite.com/
This scheme allows sharing of data between different applications from the same host. For example, if another application is located at
http://www.mysite.com/apps/App2/
, then they can share data between them in thehttp://www.mysite.com/
andhttp://www.mysite.com/apps/
directories.A JNLP client should track the amount of storage that a given application uses. A
PersistenceService
implementation provides methods to get the current storage usage and limits and to request more storage. Storage is allocated on a per file basis, but a JNLP Client will typically grant or deny the request based on the total storage is use by an application.Data stored using this mechanism is intended to be a local copy of data stored on a remote server. The individual entries can be tagged as either cached, meaning the server has an up-to-date copy, dirty, meaning the server does not have an up-to-date copy, or temporary, meaning that the file can always be recreated.
- Since:
- 1.4.2
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
create(URL url, long maxsize)
Creates a new persistent storage entry on the client side named with the given URL.void
delete(URL url)
Removes the stream associated with the given URL from the client-side date persistence store.FileContents
get(URL url)
Returns aFileContents
object representing the contents of this file.String[]
getNames(URL url)
Returns an array of Strings containing the names of all the entries for a given URL.int
getTag(URL url)
Returns anint
corresponding to the current value of the tag for the persistent data store entry associated with the given URL.void
setTag(URL url, int tag)
Tags the persistent data store entry associated with the given URL with the given tag value.
-
-
-
Field Detail
-
CACHED
static final int CACHED
- See Also:
- Constant Field Values
-
TEMPORARY
static final int TEMPORARY
- See Also:
- Constant Field Values
-
DIRTY
static final int DIRTY
- See Also:
- Constant Field Values
-
-
Method Detail
-
create
long create(URL url, long maxsize) throws MalformedURLException, IOException
Creates a new persistent storage entry on the client side named with the given URL.- Parameters:
url
- the URL representing the name of the entry in the persistent data store.maxsize
- maximum size of storage that can be written to this entry.- Returns:
- the maximum size of storage that got granted, in bytes.
- Throws:
MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.IOException
- if an I/O exception occurs, or the entry already exists.
-
get
FileContents get(URL url) throws MalformedURLException, IOException, FileNotFoundException
Returns aFileContents
object representing the contents of this file.- Parameters:
url
- the URL representing the persistent data store entry.- Returns:
- the file contents as a FileContents.
- Throws:
IOException
- if an I/O error occurs.MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.FileNotFoundException
- if a persistence store for the given URL is not found.
-
delete
void delete(URL url) throws MalformedURLException, IOException
Removes the stream associated with the given URL from the client-side date persistence store.- Parameters:
url
- the URL representing the entry to delete from the persistent data store.- Throws:
MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.IOException
- if an I/O exception occurs.
-
getNames
String[] getNames(URL url) throws MalformedURLException, IOException
Returns an array of Strings containing the names of all the entries for a given URL.- Parameters:
url
- the URL representing the root directory to search for entry names.- Returns:
- a
String
array containing the entries names. - Throws:
MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.IOException
- if an I/O exception occurs.
-
getTag
int getTag(URL url) throws MalformedURLException, IOException
Returns anint
corresponding to the current value of the tag for the persistent data store entry associated with the given URL.- Parameters:
url
- the URL representing the persistent data store entry for which the tag value is requested.- Returns:
- an
int
containing one of the following tag values: - Throws:
MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.IOException
- if an I/O exception occurs.
-
setTag
void setTag(URL url, int tag) throws MalformedURLException, IOException
Tags the persistent data store entry associated with the given URL with the given tag value.- Parameters:
url
- the URL representing the persistent data store entry for which to set the tag value.tag
- the tag value to set.- Throws:
MalformedURLException
- if the application is denied access to the persistent data store represented by the given URL or the URL is null.IOException
- if an I/O exception occurs.
-
-