01: /*
02: * $RCSfile: PropertyChangeEmitter.java,v $
03: *
04: * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
05: *
06: * Use is subject to license terms.
07: *
08: * $Revision: 1.1 $
09: * $Date: 2005/02/11 04:57:16 $
10: * $State: Exp $
11: */
12: package javax.media.jai;
13:
14: import java.beans.PropertyChangeListener;
15:
16: /**
17: * A class which emits <code>PropertyChangeEvent</code>s.
18: * This abstraction permits objects of disparate types to be recognized
19: * as sources of <code>PropertyChangeEvent</code>s.
20: * <code>PropertyChangeEvent</code>s emitted by JAI objects will be
21: * <code>PropertyChangeEventJAI</code> instances.
22: *
23: * <p> Note that the case of property names used in this context is
24: * significant.
25: *
26: * @see PropertyChangeEventJAI
27: *
28: * @since JAI 1.1
29: */
30: public interface PropertyChangeEmitter {
31:
32: /**
33: * Add a PropertyChangeListener to the listener list. The
34: * listener is registered for all properties.
35: */
36: void addPropertyChangeListener(PropertyChangeListener listener);
37:
38: /**
39: * Add a PropertyChangeListener for a specific property. The
40: * listener will be invoked only when a call on
41: * firePropertyChange names that specific property.
42: *
43: * @throws IllegalArgumentException for null <code>propertyName</code>.
44: */
45: void addPropertyChangeListener(String propertyName,
46: PropertyChangeListener listener);
47:
48: /**
49: * Remove a PropertyChangeListener from the listener list. This
50: * removes a PropertyChangeListener that was registered for all
51: * properties.
52: */
53: void removePropertyChangeListener(PropertyChangeListener listener);
54:
55: /**
56: * Remove a PropertyChangeListener for a specific property.
57: *
58: * @throws IllegalArgumentException for null <code>propertyName</code>.
59: */
60: void removePropertyChangeListener(String propertyName,
61: PropertyChangeListener listener);
62: }
|