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
     1 package org.apidesign.sidemeanings;
     2 
     3 public abstract class Public {
     4     int counter;
     5 
     6     Public() {}
     7 
     8     public abstract void increment();
     9 
    10     public final void incrementTenTimes() {
    11         for (int i = 0; i < 10; i++) {
    12             increment();
    13         }
    14     }
    15 
    16     public final void assertCounter(int expected) {
    17         assert expected == counter : "Expected " + expected + " but was " + counter;
    18     }
    19 
    20     
    21     public static abstract class Dirty extends Public {
    22         // BEGIN: sidemeanings.Public.Dirty
    23         public void increment() {
    24             // internal implementation
    25             counter++;
    26         }
    27         // END: sidemeanings.Public.Dirty
    28     }
    29     
    30     
    31     public static abstract class Clean extends Public {
    32         // BEGIN: sidemeanings.Public.Clean
    33         public final void increment() {
    34             overridableIncrement();
    35         }
    36         protected abstract void overridableIncrement();
    37         protected final void defaultIncrement() {
    38             counter++;
    39         }
    40         // END: sidemeanings.Public.Clean
    41     }
    42 }