samples/friendpackage/src/org/apidesign/friendpackage/api/Item.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sun, 06 Oct 2013 22:05:14 +0200
changeset 407 e1439046d96e
parent 285 321b25b8f6f8
permissions -rw-r--r--
Looks like scala change URLs of its releases
     1 package org.apidesign.friendpackage.api;
     2 
     3 import javax.swing.event.ChangeEvent;
     4 import javax.swing.event.ChangeListener;
     5 import org.apidesign.friendpackage.impl.Accessor;
     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     /** Only friends can create instances. */
    17     Item() {
    18     }
    19     
    20     /** Anyone can change value of the item. 
    21      */
    22     public void setValue(int newValue) {
    23         value = newValue;
    24         ChangeListener l = listener;
    25         if (l != null) {
    26             l.stateChanged(new ChangeEvent(this));
    27         }
    28     }
    29     
    30     /** Anyone can get the value of the item. 
    31      */
    32     public int getValue() {
    33         return value;
    34     }
    35     
    36     /** Only friends can listen to changes.
    37      */
    38     void addChangeListener(ChangeListener l) {
    39         assert listener == null;
    40         listener = l;
    41     }
    42 // FINISH: design.less.friend.Item
    43 
    44     // BEGIN: design.less.friend.Item.static
    45     static {
    46         Accessor.setDefault(new AccessorImpl());
    47     }
    48     // END: design.less.friend.Item.static
    49 }