All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.tv.service.guide.ProgramSchedule Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
/**

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.guide; import javax.tv.locator.*; import javax.tv.service.SIRequest; import javax.tv.service.SIRequestor; import java.util.Date; import javax.tv.service.SIException; import javax.tv.service.SIChangeListener; /** * This interface represents a collection of program events for a given * service ordered by time. It provides the current, next and future * program events.

* * Note that all time values are in UTC time. * * @see java.util.Date java.util.Date * @see javax.tv.service.guide.ProgramEvent * @see javax.tv.service.ReadPermission */ public interface ProgramSchedule { /** * Retrieves the current ProgramEvent. The resulting * ProgramEvent is available for immediate viewing.

* * This method delivers its results asynchronously. If the caller * does not have * javax.tv.service.ReadPermission(pe.getLocator()) * (where pe is the current program event), this * method will result in an SIRequestFailureType of * DATA_UNAVAILABLE. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @see ProgramEvent * @see javax.tv.service.ReadPermission */ public SIRequest retrieveCurrentProgramEvent(javax.tv.service.SIRequestor requestor); /** * Retrieves the program event for the specified time. The * specified time will fall between the resulting program event's * start time (inclusive) and end time (exclusive).

* * This method delivers its results asynchronously. If the caller * does not have * javax.tv.service.ReadPermission(pe.getLocator()) * (where pe is the program event at the specified * time), this method will result in an * SIRequestFailureType of * DATA_UNAVAILABLE. * * @param time The time of the program event to be retrieved. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @throws SIException If time does not represent a * future time value. * * @see ProgramEvent * @see javax.tv.service.ReadPermission */ public SIRequest retrieveFutureProgramEvent(Date time, javax.tv.service.SIRequestor requestor) throws SIException; /** * Retrieves all known program events on this service for the * specified time interval. A program event pe is * retrieved by this method if the time interval from * pe.getStartTime() (inclusive) to * pe.getEndTime() (exclusive) intersects the time * interval from begin (inclusive) to end * (exclusive) specified by the input parameters.

* * This method returns data asynchronously. Only program events * pe for which the caller has * javax.tv.service.ReadPermission(pe.getLocator()) * will be retrieved. If no program events meet this criteria, * this method will result in an SIRequestFailureType of * DATA_UNAVAILABLE. * * @param begin Time identifying the beginning of the interval. * * @param end Time identifying the end of the interval. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @throws SIException If end represents a time value * before begin, or if end does not * represent a future time value. * * @see ProgramEvent * @see javax.tv.service.ReadPermission */ public SIRequest retrieveFutureProgramEvents(Date begin, Date end, javax.tv.service.SIRequestor requestor) throws SIException; /** * Retrieves a event which follows the specified event.

* * This method delivers its results asynchronously. If the caller * does not have * javax.tv.service.ReadPermission(pe.getLocator()) * (where pe is the next program event), this * method will result in an SIRequestFailureType of * DATA_UNAVAILABLE. * * @param event A reference event. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @throws SIException If event does not belong to this * ProgramSchedule. * * @see ProgramEvent * @see javax.tv.service.ReadPermission */ public SIRequest retrieveNextProgramEvent(ProgramEvent event, javax.tv.service.SIRequestor requestor) throws SIException; /** * Retrieves a program event matching the locator. Note that * the event must be part of this schedule.

* * This method returns data asynchronously. * * @param locator Locator referencing the ProgramEvent * 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 ProgramEvent in this * ProgramSchedule. * * @throws SecurityException If the caller does not have * javax.tv.service.ReadPermission(locator). * * @see ProgramEvent * @see javax.tv.service.ReadPermission */ public SIRequest retrieveProgramEvent(Locator locator, javax.tv.service.SIRequestor requestor) throws InvalidLocatorException, SecurityException; /** * Registers a ProgramScheduleListener to be notified of * changes to program events on this ProgramSchedule. * Subsequent changes will be indicated through instances of * ProgramScheduleEvent, with this * ProgramSchedule as the event source and an * SIChangeType of ADD, * REMOVE, MODIFY, or * CURRENT_PROGRAM_EVENT. Only changes to * ProgramEvent instances p for which the * caller has * javax.tv.service.ReadPermission(p.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, * changes to the ProgramSchedule, or whether such changes * will be detected in a timely fashion.

* * If the specified ProgramScheduleListener is already * registered, no action is performed. * * @param listener A ProgramScheduleListener to be notified of * changes to program events on this ProgramSchedule. * * @see ProgramEvent * @see ProgramScheduleEvent * @see ProgramScheduleChangeType * @see javax.tv.service.ReadPermission */ public void addListener(ProgramScheduleListener listener); /** * Unregisters a ProgramScheduleListener. If the * specified ProgramScheduleListener is not registered, no * action is performed. * * @param listener A previously registered listener. */ public void removeListener(ProgramScheduleListener listener); /** * Reports the transport-dependent locator referencing the service to * which this ProgramSchedule belongs. Note that * applications may use this method to establish the identity of * a ProgramSchedule after it has changed. * * @return The transport-dependent locator referencing the service to * which this ProgramSchedule belongs. * * @see ProgramScheduleEvent#getProgramSchedule */ public Locator getServiceLocator(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy