javax.tv.service.transport.Transport Maven / Gradle / Ivy
/**
This is not an official specification document, and usage is restricted.
NOTICE
(c) 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
Neither this file nor any files generated from it describe a complete
specification, and they may only be used as described below.
Sun Microsystems Inc. owns the copyright in this file and it is provided
to you for informative use only. For example,
this file and any files generated from it may be used to generate other documentation,
such as a unified set of documents of API signatures for a platform
that includes technologies expressed as Java APIs.
This file may also be used to produce "compilation stubs,"
which allow applications to be compiled and validated for such platforms.
By contrast, no permission is given for you to incorporate this file,
in whole or in part, in an implementation of a Java specification.
Any work generated from this file, such as unified javadocs or compiled
stub files, must be accompanied by this notice in its entirety.
This work corresponds to the API signatures of JSR 927: Java TV API 1.1.1.
In the event of a discrepency between this work and the JSR 927 specification,
which is available at http://www.jcp.org/en/jsr/detail?id=927, the latter takes precedence.
*/
package javax.tv.service.transport;
import javax.tv.service.navigation.DeliverySystemType;
/**
* This interface represents an individual content delivery mechanism.
* A Transport
serves as an access point for acquiring
* information about services and their groupings.
*
* A Transport
may expose various types of
* entities (e.g. bouquets, networks and/or transport streams) by
* optionally implementing additional interfaces
* (i.e. BouquetCollection
,
* NetworkCollection
, and/or
* TransportStreamCollection
), depending on the particular
* SI format used and the presence of optional elements and tables in
* the SI data being broadcast.
*
* @see BouquetCollection
* @see NetworkCollection
* @see TransportStreamCollection
*
* @see Optionally implemented interfaces
*/
public interface Transport
{
/**
* Registers a ServiceDetailsChangeListener
to be
* notified of changes to ServiceDetails
that are
* carried on this Transport
. Subsequent notification
* is made via ServiceDetailsChangeEvent
with this
* Transport
instance as the event source and an
* SIChangeType
of ADD
,
* REMOVE
or MODIFY
. Only changes to
* ServiceDetails
sd
for which the caller
* has javax.tv.service.ReadPermission(sd.getLocator())
* will be reported.
*
* This method is only a request for notification. No guarantee is
* provided that the SI database will detect all, or even any, SI
* changes or whether such changes will be detected in a timely
* fashion. Applications may indicate ServiceDetails
* of particular interest via the method {@link
* javax.tv.service.SIManager#registerInterest}.
*
* If the specified ServiceDetailsChangeListener
is
* already registered, no action is performed.
*
* @param listener An ServiceDetailsChangeListener
to be
* notified about changes related to ServiceDetails
* carried on this Transport
.
*
* @see ServiceDetailsChangeEvent
* @see javax.tv.service.SIManager#registerInterest
* @see javax.tv.service.ReadPermission
*/
public void addServiceDetailsChangeListener(ServiceDetailsChangeListener
listener);
/**
* Called to unregister an
* ServiceDetailsChangeListener
. If the specified
* ServiceDetailsChangeListener
is not registered, no
* action is performed.
*
* @param listener A previously registered listener.
*/
public void removeServiceDetailsChangeListener(ServiceDetailsChangeListener
listener);
/**
* Reports the type of mechanism by which this
* Transport
delivers content.
*
* @return The delivery system type of this transport.
*/
public DeliverySystemType getDeliverySystemType();
}