diff -r 897361847d12 -r 1657c68af062 samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixed.java --- a/samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixed.java Sat Jun 14 10:04:50 2008 +0200 +++ b/samples/sidemeanings/src/org/apidesign/sidemeanings/NonMixed.java Wed Apr 01 18:21:39 2009 +0200 @@ -1,42 +1,22 @@ package org.apidesign.sidemeanings; +import org.apidesign.sidemeanings.NonMixedFactory.Provider; + // BEGIN: sidemeanings.Mixed.Clean public final class NonMixed { - private int counter; + int counter; private int sum; private final Provider impl; - private NonMixed(Provider impl) { + NonMixed(Provider impl) { this.impl = impl; } - public static NonMixed create(Provider impl) { - NonMixed api = new NonMixed(impl); - Callback callback = new Callback(api); - impl.initialize(callback); - return api; - } public final int apiForClients() { int subclass = impl.toBeImplementedBySubclass(); sum += subclass; return sum / counter; } - - public interface Provider { - public void initialize(Callback c); - public int toBeImplementedBySubclass(); - } - - public static final class Callback { - NonMixed api; - - Callback(NonMixed api) { - this.api = api; - } - public final void toBeCalledBySubclass() { - api.counter++; - } - } } // END: sidemeanings.Mixed.Clean