org.dvb.application.storage
Interface StoredApplicationService

All Superinterfaces:
ApplicationStorageController, javax.tv.service.Service

public interface StoredApplicationService
extends javax.tv.service.Service, ApplicationStorageController

Defines the information about a stored application service.

Stored application services can be created by applications that have a permission to store applications for an organisation_id.

Stored application services are uniquely identified within the terminal by the combination of the organisation_id and service_id.

Since:
MHP1.1

Method Summary
 javax.tv.locator.Locator getLocator()
          Gets the locator for this stored application service.
 java.lang.String getName()
          Returns the name of the stored application service as defined when the stored application service was created.
 int getOrganisationId()
          Return the organisation id of this stored application service
 int getServiceId()
          Return the service id of this stored application service
 javax.tv.service.ServiceInformationType getServiceInformationType()
          Returns the service information format of this object.
 javax.tv.service.ServiceType getServiceType()
          Returns the type of this service.
 boolean hasMultipleInstances()
          Indicates whether the service represented by this Service is available on multiple transports.
 boolean isSelectable()
          Test whether this service is selectable.
 void removeService()
          Remove the whole stored application service from the terminal.
 javax.tv.service.SIRequest retrieveDetails(javax.tv.service.SIRequestor requestor)
          This method retrieves additional information about the service.
 
Methods inherited from interface javax.tv.service.Service
equals, hashCode
 
Methods inherited from interface org.dvb.application.storage.ApplicationStorageController
getStoredAppIDs, getVersionNumber, remove, remove, store, store, store, store
 

Method Detail

getOrganisationId

int getOrganisationId()
Return the organisation id of this stored application service

Returns:
the organisation id of this stored application service

getServiceId

int getServiceId()
Return the service id of this stored application service

Returns:
the service id of this stored application service

getLocator

javax.tv.locator.Locator getLocator()
Gets the locator for this stored application service. This locator is opaque and platform specific. It shall be an instance of Locator or a subclass. It is not required to be an instance of any other public locator class in the platform (e.g. DvbLocator).

Specified by:
getLocator in interface javax.tv.service.Service
Returns:
a locator for this stored application service

getName

java.lang.String getName()
Returns the name of the stored application service as defined when the stored application service was created.

Specified by:
getName in interface javax.tv.service.Service
Returns:
the name of the stored application service

getServiceInformationType

javax.tv.service.ServiceInformationType getServiceInformationType()
Returns the service information format of this object. This shall always return ServiceInformationType.UNKNOWN.

Returns:
the service information format

getServiceType

javax.tv.service.ServiceType getServiceType()
Returns the type of this service. For stored application services, this method shall always return StoredApplicationServiceType.STORED_APPLICATION_SERVICE.

Specified by:
getServiceType in interface javax.tv.service.Service
Returns:
service type of this service

hasMultipleInstances

boolean hasMultipleInstances()
Indicates whether the service represented by this Service is available on multiple transports. For stored application services, this shall always return false.

Specified by:
hasMultipleInstances in interface javax.tv.service.Service
Returns:
false

removeService

void removeService()
                   throws UserRejectedInstallException
Remove the whole stored application service from the terminal. Removal of the service results in the removal of all the applications from within that service.

If there are any applications installed in the stored application service, then the application calling this method should be prepared for the platform consulting the end user of the GEM terminal for permission to remove the stored service.

The platform shall not prompt the user for permission if no applications are installed in the service.

If the end user is asked and does not give permission to remove the service, none of the applications in the service shall be removed.

Throws:
java.lang.SecurityException - if the caller does not have an ApplicationStoragePermission with action "deleteService" and an organisation_id which matches that of this service. Also thrown if the caller does not have ApplicationStoragePermission with action "removeService" for the organisation IDs of every application installed in this service.
UserRejectedInstallException - If the user chose not to remove the applications in the service.

retrieveDetails

javax.tv.service.SIRequest retrieveDetails(javax.tv.service.SIRequestor requestor)
This method retrieves additional information about the service. This shall result in failure with the SIRequestFailureType DATA_UNAVAILABLE.

Specified by:
retrieveDetails in interface javax.tv.service.Service
Parameters:
requestor - The SIRequestor to be notified when this operation completes.
Returns:
A SIRequest object identifying this request.

isSelectable

boolean isSelectable()
Test whether this service is selectable. StoredApplicationServices are selectable if they contain at least one autostart application and are not selectable if they do not contain any autostart applications. Applications which offer the end-user a choice of services to select should not include services which are not selectable in that list.

Returns:
false if the service is not selectable otherwise true
Since:
MHP 1.1.3