1.1 --- a/samples/sidemeanings/src/org/apidesign/sidemeanings/Protected.java Sat Jun 14 09:54:19 2008 +0200
1.2 +++ b/samples/sidemeanings/src/org/apidesign/sidemeanings/Protected.java Wed Mar 25 22:14:46 2009 +0100
1.3 @@ -1,24 +1,40 @@
1.4 package org.apidesign.sidemeanings;
1.5
1.6 -public final class Protected {
1.7 - private Protected() {}
1.8 +public abstract class Protected {
1.9 + int counter;
1.10 +
1.11 + Protected() {}
1.12 +
1.13 + protected void increment() {
1.14 + counter++;
1.15 + }
1.16 +
1.17 + public final void incrementTenTimes() {
1.18 + for (int i = 0; i < 10; i++) {
1.19 + increment();
1.20 + }
1.21 + }
1.22 +
1.23 + public final void assertCounter(int expected) {
1.24 + assert expected == counter : "Expected " + expected + " but was " + counter;
1.25 + }
1.26
1.27
1.28 - public class Dirty {
1.29 + public static class Dirty extends Protected {
1.30 // BEGIN: sidemeanings.Protected.Dirty
1.31 - protected void method() {
1.32 - someCode();
1.33 + protected void increment() {
1.34 + // implementation:
1.35 + counter++;
1.36 }
1.37 // END: sidemeanings.Protected.Dirty
1.38 - private void someCode() {
1.39 - }
1.40 }
1.41
1.42
1.43 - public abstract class Clean {
1.44 + public static abstract class Clean extends Protected {
1.45 // BEGIN: sidemeanings.Protected.Clean
1.46 - protected abstract void method();
1.47 - protected final void someCode() {
1.48 + protected abstract void increment();
1.49 + protected final void defaultIncrement() {
1.50 + counter++;
1.51 }
1.52 // END: sidemeanings.Protected.Clean
1.53 }