1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/sidemeanings/src/org/apidesign/sidemeanings/Mixed.java Sat Jun 14 09:54:19 2008 +0200
1.3 @@ -0,0 +1,47 @@
1.4 +package org.apidesign.sidemeanings;
1.5 +
1.6 +public final class Mixed {
1.7 + private Mixed() {}
1.8 +
1.9 +
1.10 + // BEGIN: sidemeanings.Mixed.Dirty
1.11 + public static abstract class MixedClass {
1.12 + protected MixedClass() { }
1.13 +
1.14 + public final void apiForClients() { /*...*/ }
1.15 + protected abstract void toBeImplementedBySubclass();
1.16 + protected final void toBeCalledBySubclass() { /* ... */ }
1.17 + }
1.18 + // END: sidemeanings.Mixed.Dirty
1.19 +
1.20 + // BEGIN: sidemeanings.Mixed.Clean
1.21 + public static final class NonMixed {
1.22 + private NonMixed() {}
1.23 + public static NonMixed create(NonMixedImpl impl) {
1.24 + NonMixed api = new NonMixed();
1.25 + Callback callback = new Callback(api);
1.26 + impl.initialize(callback);
1.27 + return api;
1.28 + }
1.29 +
1.30 + public final void apiForClients() { /*...*/ }
1.31 + }
1.32 +
1.33 + public static interface NonMixedImpl {
1.34 + public void initialize(Callback c);
1.35 + public void toBeImplementedBySubclass();
1.36 + }
1.37 +
1.38 + public static final class Callback {
1.39 + Callback(NonMixed nomMixed) {
1.40 + }
1.41 + public final void toBeCalledBySubclass() {
1.42 + /*...*/
1.43 + }
1.44 + }
1.45 + // BEGIN: sidemeanings.Mixed.Clean
1.46 +
1.47 +
1.48 +}
1.49 +
1.50 +