1 package org.apidesign.friendpackage.api;
3 import javax.swing.event.ChangeEvent;
4 import javax.swing.event.ChangeListener;
5 import org.apidesign.friendpackage.impl.Accessor;
7 /** Class in API that everyone can use.
9 * @author Jaroslav Tulach
11 // BEGIN: design.less.friend.Item
12 public final class Item {
14 private ChangeListener listener;
16 /** Only friends can create instances. */
20 /** Anyone can change value of the item.
22 public void setValue(int newValue) {
24 ChangeListener l = listener;
26 l.stateChanged(new ChangeEvent(this));
30 /** Anyone can get the value of the item.
32 public int getValue() {
36 /** Only friends can listen to changes.
38 void addChangeListener(ChangeListener l) {
39 assert listener == null;
42 // FINISH: design.less.friend.Item
44 // BEGIN: design.less.friend.Item.static
46 Accessor.setDefault(new AccessorImpl());
48 // END: design.less.friend.Item.static