diff -r 897361847d12 -r 40cabcdcd2be 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 Thu Oct 30 21:30:10 2014 +0100 @@ -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