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

javax.tv.service.Service Maven / Gradle / Ivy

/*
 * @(#)Service.java	1.32 00/10/09
 *
 * 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;

import javax.tv.locator.Locator;


/**
 * The Service interface represents an abstract view on
 * what is generally referred to as a television "service" or
 * "channel". It may represent an MPEG-2 program, DVB service, an ATSC
 * virtual channel, SCTE virtual channel, etc. It represents the basic
 * information associated with a service, such as its name or number,
 * which is guaranteed to be available on the receiver. 

* * Internal to the receiver, each service is uniquely identified by * information that may include system type, network ID, transport stream * ID, service number, service number, or other information. This * identification is encapsulated by the Locator object.

* * Note that a Service object may represent multiple * instances of the same content delivered over different media * (e.g., the same service may be delivered over a terrestrial and * cable network). A ServiceDetails object represents a * specific instance of such content which is bound to a specific * delivery mechanism.

* * The information available through this object, i.e., the service name, * service number, etc., represents information that is stored in * the receiver and is not necessarily the same as what is broadcast in any * broadcast service information protocol. For example, a receiver * implementation may let the end user edit this information according to * the user's preferences.

* * A Service object may optionally implement an interface * that supports service numbers. Each Service object * must provide either a service name (via the getName method) * or a service number (via the ServiceNumber interface). * * @see #getName * @see ServiceNumber * @see javax.tv.service.navigation.ServiceDetails * @see Optionally implemented interfaces */ public interface Service { /** * This method retrieves additional information about the * Service. This information is retrieved from the * broadcast service information.

* * Note that if the content represented by this Service * is delivered on multiple transport-dependent streams there may be * multiple ServiceDetails for it. This method * retrieves one of them based on availability or user * preferences. If access to all possible * ServiceDetails is required, the service * Locator can be transformed to transport-dependent * Locator instances and ServiceDetails * can be retrieved for each.

* * This method returns data asynchronously. * * @param requestor The SIRequestor to be notified * when this retrieval operation completes. * * @return An SIRequest object identifying this * asynchronous retrieval request. * * @see javax.tv.locator.Locator * * @see javax.tv.service.navigation.ServiceDetails */ public abstract SIRequest retrieveDetails(SIRequestor requestor); /** * Returns a short service name or acronym. For example, in ATSC * systems the service name is provided by the the PSIP VCT; in DVB * systems, this information is provided by the DVB Service * Descriptor or the Multilingual Service Name Descriptor. The * service name may also be user-defined. * * @return A string representing this service's short name. If the * short name is unavailable, the string representation of the * service number is returned. */ public abstract String getName(); /** * This method indicates whether the service represented by this * Service object is available on multiple * transports, (e.g., the same content delivered over terrestrial and * cable network). * * @return true if multiple transports carry the same * content identified by this Service object; * false if there is only one instance of this service. **/ public boolean hasMultipleInstances(); /** * Returns the type of this service, (for example, "digital * television", "digital radio", "NVOD", etc.) These values can be * mapped to the ATSC service type in the VCT table and the DVB * service type in the service descriptor. * * @return Service type of this Service. **/ public ServiceType getServiceType(); /** * Reports the Locator of this Service. * Note that if the resulting locator is transport-dependent, it * will also correspond to a ServiceDetails object. * * @return A locator referencing this Service. * * @see javax.tv.service.navigation.ServiceDetails **/ public Locator getLocator(); /** * Tests two Service objects for equality. Returns * true if and only if: *

    *
  • obj's class is the * same as the class of this Service, and

    *

  • obj's Locator is equal to * the Locator of this Service * (as reported by * Service.getLocator(), and

    *

  • obj and this object encapsulate identical data. *
* * @param obj The object against which to test for equality. * * @return true if the two Service objects * are equal; false otherwise. */ public boolean equals(Object obj); /** * Reports the hash code value of this Service. Two * Service objects that are equal will have identical * hash codes. * * @return The hash code value of this Service. */ public int hashCode(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy