samples/sidemeanings/src/org/apidesign/sidemeanings/Public.java
author Jaroslav Tulach <jtulach@netbeans.org>
Wed, 25 Mar 2009 22:14:46 +0100
changeset 324 a9ad091ed069
parent 99 4bf599099de7
permissions -rw-r--r--
New samples for converting sidemeaning modifiers to clarity ones
jtulach@99
     1
package org.apidesign.sidemeanings;
jtulach@99
     2
jtulach@324
     3
public abstract class Public {
jtulach@324
     4
    int counter;
jtulach@324
     5
jtulach@324
     6
    Public() {}
jtulach@324
     7
jtulach@324
     8
    public abstract void increment();
jtulach@324
     9
jtulach@324
    10
    public final void incrementTenTimes() {
jtulach@324
    11
        for (int i = 0; i < 10; i++) {
jtulach@324
    12
            increment();
jtulach@324
    13
        }
jtulach@324
    14
    }
jtulach@324
    15
jtulach@324
    16
    public final void assertCounter(int expected) {
jtulach@324
    17
        assert expected == counter : "Expected " + expected + " but was " + counter;
jtulach@324
    18
    }
jtulach@99
    19
jtulach@99
    20
    
jtulach@324
    21
    public static abstract class Dirty extends Public {
jtulach@99
    22
        // BEGIN: sidemeanings.Public.Dirty
jtulach@324
    23
        public void increment() {
jtulach@324
    24
            // internal implementation
jtulach@324
    25
            counter++;
jtulach@99
    26
        }
jtulach@99
    27
        // END: sidemeanings.Public.Dirty
jtulach@99
    28
    }
jtulach@99
    29
    
jtulach@99
    30
    
jtulach@324
    31
    public static abstract class Clean extends Public {
jtulach@99
    32
        // BEGIN: sidemeanings.Public.Clean
jtulach@324
    33
        public final void increment() {
jtulach@324
    34
            overridableIncrement();
jtulach@99
    35
        }
jtulach@324
    36
        protected abstract void overridableIncrement();
jtulach@324
    37
        protected final void defaultIncrement() {
jtulach@324
    38
            counter++;
jtulach@99
    39
        }
jtulach@99
    40
        // END: sidemeanings.Public.Clean
jtulach@99
    41
    }
jtulach@99
    42
}