The supplied Transform functional interface has String apply(String value); inputs/results are nonnull unless a transform deliberately throws.

Prototype: applyAll(String input,List<Transform>) -> String applies transforms once each in list order. Empty list returns original input. Propagate an exception unchanged and stop before later transforms; preserve list.

Final: pipeline(List<Transform>) -> Transform returns deferred composition with the same application contract. Construction invokes nothing and snapshots the transform list, so caller list changes do not alter behavior. Repeated calls run the pipeline independently; transform objects themselves are intentionally shared.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.

Java runs on this device with CheerpJ 4.3.