an empty line will throw IllegalArgumentException the decorator pattern is used covered by tests (JUnit5 and mockito) hello world! "h" - 1 "e" - 1 "l" - 3 "o" - 2 " " - 1 "w" - 1 "r" - 1 "d" - 1 "!" - 1