Module java.jnlp
Package javax.jnlp

Interface PersistenceService



  • 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 the http://www.mysite.com/ and http://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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int CACHED  
      static int DIRTY  
      static int TEMPORARY  
    • 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 a FileContents 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 an int 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.
    • 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.
      • 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 an int 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.