samples/friendpackage/src/apipkg/Item.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:58:11 +0200
changeset 154 0fd5e9c500b9
parent 153 b5cbb797ec0a
child 190 8b87a7d88b31
permissions -rw-r--r--
Merge: Geertjan's changs up to 2000
     1 package apipkg;
     2 
     3 import implpkg.Accessor;
     4 import javax.swing.event.ChangeEvent;
     5 import javax.swing.event.ChangeListener;
     6 
     7 /** Class in API that everyone can use.
     8  *
     9  * @author Jaroslav Tulach
    10  */
    11 // BEGIN: design.less.friend.Item
    12 public final class Item {
    13     private int value;
    14     private ChangeListener listener;
    15 
    16     // BEGIN: design.less.friend.Item.static
    17     static {
    18         Accessor.setDefault(new AccessorImpl());
    19     }
    20     // END: design.less.friend.Item.static
    21     
    22     /** Contructor for friends */
    23     Item() {
    24     }
    25     
    26     /** Anyone can value of the item. At least if it 
    27      * can get a reference to it.
    28      */
    29     public void setValue(int x) {
    30         value = x;
    31         ChangeListener l = listener;
    32         if (l != null) {
    33             l.stateChanged(new ChangeEvent(this));
    34         }
    35     }
    36     
    37     /** Anyone can get the value of the item. 
    38      */
    39     public int getValue() {
    40         return value;
    41     }
    42     
    43     /** Only the impl package can listen.
    44      */
    45     void addChangeListener(ChangeListener l) {
    46         assert listener == null;
    47         listener = l;
    48     }
    49     
    50 }
    51 // END: design.less.friend.Item