samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixedFactory.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
jtulach@326
     1
package org.apidesign.sidemeanings;
jtulach@326
     2
jtulach@326
     3
// BEGIN: sidemeanings.Mixed.Clean.Factory
jtulach@326
     4
public final class NonMixedFactory {
jtulach@326
     5
    private NonMixedFactory() {
jtulach@326
     6
    }
jtulach@326
     7
    
jtulach@326
     8
    public static NonMixed create(Provider impl) {
jtulach@326
     9
        NonMixed api = new NonMixed(impl);
jtulach@326
    10
        Callback callback = new Callback(api);
jtulach@326
    11
        impl.initialize(callback);
jtulach@326
    12
        return api;
jtulach@326
    13
    }
jtulach@326
    14
jtulach@326
    15
    public interface Provider {
jtulach@326
    16
        public void initialize(Callback c);
jtulach@326
    17
        public int toBeImplementedBySubclass();
jtulach@326
    18
    }
jtulach@326
    19
jtulach@326
    20
    public static final class Callback {
jtulach@326
    21
        final NonMixed api;
jtulach@326
    22
        
jtulach@326
    23
        Callback(NonMixed api) {
jtulach@326
    24
            this.api = api;
jtulach@326
    25
        }
jtulach@326
    26
        public final void toBeCalledBySubclass() {
jtulach@326
    27
            api.counter++;
jtulach@326
    28
        }
jtulach@326
    29
    }
jtulach@326
    30
}
jtulach@326
    31
// END: sidemeanings.Mixed.Clean.Factory
jtulach@326
    32
jtulach@326
    33