View Javadoc
1   package com.guinetik.hexafun.examples.counter;
2   
3   /**
4    * Immutable counter value object.
5    */
6   public record Counter(int value) {
7       public Counter increment() {
8           return new Counter(value + 1);
9       }
10  
11      public Counter decrement() {
12          return new Counter(value - 1);
13      }
14  
15      public Counter add(int amount) {
16          return new Counter(value + amount);
17      }
18  
19      public static Counter zero() {
20          return new Counter(0);
21      }
22  
23      public static Counter of(int value) {
24          return new Counter(value);
25      }
26  }