javax.tv.service.SIChangeEvent 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;
import java.util.EventObject;
/**
* SIChangeEvent
objects are sent to
* SIChangeListener
instances to signal detected changes
* in the SI database.
*
* Note that while the SI database may detect changes, notification of
* which specific SIElement
has changed is not guaranteed.
* The entity reported by the method getSIElement()
will
* be either:
*
* - The specific SI element that changed, or
*
- An SI element that contains, however indirectly, the specific SI
* element that changed, or
*
null
, if the specific changed element is unknown.
*
*
* The level of specificity provided by the change mechanism is
* entirely dependent on the capabilities and current resources of the
* implementation.
*
* SIChangeEvent
instances also report the kind of change
* that occurred to the SI element, via the method
* getChangeType()
:
*
*
* SIChangeType.ADD
indicates that
* the reported SI element is new in the database.
*
*
SIChangeType.REMOVE
indicates
* that the reported SI element is defunct and no longer cached by the
* database. The results of subsequent method invocations on the
* removed SIElement are undefined.
*
*
SIChangeType.MODIFY
indicates
* that the data encapsulated by the reported SI element has changed.
*
*
*
* In the event that the SIElement reported by this event is not
* the actual element that changed in the broadcast (i.e. it is
* instead a containing element or null
), the
* SIChangeType
will be SIChangeTypeMODIFY
.
* Individual SI element changes are reported only once, i.e.,
* a change to an SI element is not also reported as a change
* to any containing (or "parent") SI elements.
*
* @see #getSIElement
* @see #getChangeType
*/
public abstract class SIChangeEvent extends EventObject
{
/**
* Constructs an SIChangeEvent
object.
*
* @param source The entity in which the change occurred.
*
* @param type The type of change that occurred.
*
* @param e The SIElement
that changed, or
* null
if this is unknown.
*/
public SIChangeEvent(Object source, SIChangeType type, SIElement e) {
super(source);
}
/**
* Reports the SIElement
that changed.
*
* This method may return null
, since it is not
* guaranteed that the SI database can or will determine which
* element in a particular table changed.
*
* @return The SIElement
that changed, or
* null
if this is unknown.
*/
public SIElement getSIElement() {
return null;
}
/**
* Indicates the type of change that occurred.
*
* @return The type of change that occurred.
*/
public SIChangeType getChangeType() {
return null;
}
}