samples/sidemeanings/src/org/apidesign/sidemeanings/Protected.java
changeset 409 40cabcdcd2be
parent 99 4bf599099de7
     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	Thu Oct 30 21:30:10 2014 +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      }