samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixedFactory.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 03 Apr 2020 16:32:36 +0200
changeset 416 9ed8788a1a4e
permissions -rw-r--r--
Using HTTPS to download the libraries
     1 package org.apidesign.sidemeanings;
     2 
     3 // BEGIN: sidemeanings.Mixed.Clean.Factory
     4 public final class NonMixedFactory {
     5     private NonMixedFactory() {
     6     }
     7     
     8     public static NonMixed create(Provider impl) {
     9         NonMixed api = new NonMixed(impl);
    10         Callback callback = new Callback(api);
    11         impl.initialize(callback);
    12         return api;
    13     }
    14 
    15     public interface Provider {
    16         public void initialize(Callback c);
    17         public int toBeImplementedBySubclass();
    18     }
    19 
    20     public static final class Callback {
    21         final NonMixed api;
    22         
    23         Callback(NonMixed api) {
    24             this.api = api;
    25         }
    26         public final void toBeCalledBySubclass() {
    27             api.counter++;
    28         }
    29     }
    30 }
    31 // END: sidemeanings.Mixed.Clean.Factory
    32 
    33