1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixedFactory.java Wed Apr 01 18:21:39 2009 +0200
1.3 @@ -0,0 +1,33 @@
1.4 +package org.apidesign.sidemeanings;
1.5 +
1.6 +// BEGIN: sidemeanings.Mixed.Clean.Factory
1.7 +public final class NonMixedFactory {
1.8 + private NonMixedFactory() {
1.9 + }
1.10 +
1.11 + public static NonMixed create(Provider impl) {
1.12 + NonMixed api = new NonMixed(impl);
1.13 + Callback callback = new Callback(api);
1.14 + impl.initialize(callback);
1.15 + return api;
1.16 + }
1.17 +
1.18 + public interface Provider {
1.19 + public void initialize(Callback c);
1.20 + public int toBeImplementedBySubclass();
1.21 + }
1.22 +
1.23 + public static final class Callback {
1.24 + final NonMixed api;
1.25 +
1.26 + Callback(NonMixed api) {
1.27 + this.api = api;
1.28 + }
1.29 + public final void toBeCalledBySubclass() {
1.30 + api.counter++;
1.31 + }
1.32 + }
1.33 +}
1.34 +// END: sidemeanings.Mixed.Clean.Factory
1.35 +
1.36 +