samples/sidemeanings/src/org/apidesign/sidemeanings/Public.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 21:30:10 +0100
changeset 409 40cabcdcd2be
parent 99 4bf599099de7
permissions -rw-r--r--
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
     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 }