samples/friendpackage/src/org/apidesign/friendpackage/api/Item.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 285 321b25b8f6f8
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
jtulach@287
     1
package org.apidesign.friendpackage.api;
jtulach@0
     2
jtulach@0
     3
import javax.swing.event.ChangeEvent;
jtulach@0
     4
import javax.swing.event.ChangeListener;
jtulach@287
     5
import org.apidesign.friendpackage.impl.Accessor;
jtulach@0
     6
jtulach@0
     7
/** Class in API that everyone can use.
jtulach@0
     8
 *
jtulach@0
     9
 * @author Jaroslav Tulach
jtulach@0
    10
 */
jtulach@3
    11
// BEGIN: design.less.friend.Item
jtulach@0
    12
public final class Item {
jtulach@0
    13
    private int value;
jtulach@0
    14
    private ChangeListener listener;
jtulach@3
    15
jtulach@190
    16
    /** Only friends can create instances. */
jtulach@0
    17
    Item() {
jtulach@0
    18
    }
jtulach@0
    19
    
jtulach@190
    20
    /** Anyone can change value of the item. 
jtulach@0
    21
     */
jtulach@190
    22
    public void setValue(int newValue) {
jtulach@190
    23
        value = newValue;
jtulach@0
    24
        ChangeListener l = listener;
jtulach@0
    25
        if (l != null) {
jtulach@0
    26
            l.stateChanged(new ChangeEvent(this));
jtulach@0
    27
        }
jtulach@0
    28
    }
jtulach@0
    29
    
jtulach@0
    30
    /** Anyone can get the value of the item. 
jtulach@0
    31
     */
jtulach@0
    32
    public int getValue() {
jtulach@0
    33
        return value;
jtulach@0
    34
    }
jtulach@0
    35
    
jtulach@190
    36
    /** Only friends can listen to changes.
jtulach@0
    37
     */
jtulach@0
    38
    void addChangeListener(ChangeListener l) {
jtulach@0
    39
        assert listener == null;
jtulach@0
    40
        listener = l;
jtulach@0
    41
    }
jtulach@285
    42
// FINISH: design.less.friend.Item
jtulach@285
    43
jtulach@285
    44
    // BEGIN: design.less.friend.Item.static
jtulach@285
    45
    static {
jtulach@285
    46
        Accessor.setDefault(new AccessorImpl());
jtulach@285
    47
    }
jtulach@285
    48
    // END: design.less.friend.Item.static
jtulach@0
    49
}