samples/codeinjection/src/org/apidesign/codeinjection/CountDown.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 303 77b6002451c4
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
jtulach@303
     1
/*
jtulach@303
     2
 * To change this template, choose Tools | Templates
jtulach@303
     3
 * and open the template in the editor.
jtulach@303
     4
 */
jtulach@303
     5
jtulach@303
     6
package org.apidesign.codeinjection;
jtulach@303
     7
jtulach@303
     8
/** API class that can counts a count down.
jtulach@303
     9
 *
jtulach@303
    10
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jtulach@303
    11
 * @since 1.0
jtulach@303
    12
 */
jtulach@303
    13
// BEGIN: codeinjection.CountDown
jtulach@303
    14
public abstract class CountDown {
jtulach@303
    15
    CountDown() {
jtulach@303
    16
    }
jtulach@303
    17
jtulach@303
    18
    public static CountDown create(int initial) {
jtulach@398
    19
        return createSimpleImplementation(initial);
jtulach@303
    20
    }
jtulach@303
    21
jtulach@303
    22
    /** Decrements the counter */
jtulach@303
    23
    public abstract void down();
jtulach@303
    24
    /** @return true if the counter is 0 or less */
jtulach@303
    25
    public abstract boolean isDown();
jtulach@398
    26
// FINISH: codeinjection.CountDown
jtulach@398
    27
    
jtulach@398
    28
    private static CountDown createSimpleImplementation(int initial) {
jtulach@398
    29
        return new CountDownImplV1(initial);
jtulach@398
    30
    }
jtulach@303
    31
}