
javax.tv.service.transport.TransportStreamCollection Maven / Gradle / Ivy
/*
* @(#)TransportStreamCollection.java 1.37 00/09/27
*
* Copyright 1998-2000 by Sun Microsystems, Inc.,
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Sun Microsystems, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Sun.
*/
package javax.tv.service.transport;
import javax.tv.service.*;
import javax.tv.locator.*;
/**
* This interface represents a collection of transport streams on a
* Transport
. TransportStreamCollection
may
* be optionally implemented by Transport
objects,
* depending on the SI data carried on that transport.
*
* @see Optionally implemented interfaces
*/
public interface TransportStreamCollection extends Transport {
/**
* Retrieves the specified TransportStream
from the
* collection.
*
* @param locator Locator referencing the
* TransportStream
of interest.
*
* @param requestor The SIRequestor
to be notified
* when this retrieval operation completes.
*
* @return An SIRequest
object identifying this
* asynchronous retrieval request.
*
* @throws InvalidLocatorException If locator
does not
* reference a valid transport stream.
*
* @throws SecurityException If the caller does not have
* javax.tv.service.ReadPermission(locator)
.
*
* @see TransportStream
* @see javax.tv.service.ReadPermission
*/
public abstract SIRequest retrieveTransportStream(Locator locator,
SIRequestor requestor)
throws InvalidLocatorException, SecurityException;
/**
* Retrieves an array of the TransportStream
objects in
* this TransportStreamCollection
. The array will only
* contain TransportStream
instances ts
* for which the caller has
* javax.tv.service.ReadPermission(ts.getLocator())
. If
* no TransportStream
instances meet this criteria,
* this method will result in an SIRequestFailureType
* of DATA_UNAVAILABLE
.
*
* This method delivers its results asynchronously.
*
* @param requestor The SIRequestor
to be notified
* when this retrieval operation completes.
*
* @return An SIRequest
object identifying this
* asynchronous retrieval request.
*
* @see TransportStream
* @see javax.tv.service.ReadPermission
**/
public abstract SIRequest retrieveTransportStreams(SIRequestor requestor);
/**
* Registers a TransportStreamChangeListener
to be
* notified of changes to a TransportStream
that is
* part of this TransportStreamCollection
. Subsequent
* notification is made via TransportStreamChangeEvent
* with this TransportStreamCollection
as the event
* source and an SIChangeType
of ADD
,
* REMOVE
or MODIFY
. Only changes to
* TransportStream
instances ts
for which
* the caller has
* javax.tv.service.ReadPermission(ts.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.
*
* If the specified TransportStreamChangeListener
is
* already registered, no action is performed.
*
* @param listener A TransportStreamChangeListener
to be
* notified about changes related to TransportStream
* carried on this Transport
.
*
* @see TransportStreamChangeEvent
* @see javax.tv.service.ReadPermission
**/
public abstract void addTransportStreamChangeListener
(TransportStreamChangeListener listener);
/**
* Called to unregister an
* TransportStreamChangeListener
. If the specified
* TransportStreamChangeListener
is not registered, no
* action is performed.
*
* @param listener A previously registered listener. */
public abstract void removeTransportStreamChangeListener(TransportStreamChangeListener listener);
}