samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixedFactory.java
author Jaroslav Tulach <jtulach@netbeans.org>
Wed, 01 Apr 2009 18:21:39 +0200
changeset 326 1657c68af062
permissions -rw-r--r--
Spliting the NonMixed example into the API class and factory class
     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