code: public <U extends T, A, B, C> InitialMatching3<T, U, A, B, C> when(
        DecomposableMatchBuilder3<U, A, B, C> decomposableMatchBuilder) {
      return new InitialMatching3<>(decomposableMatchBuilder.build(), value);
    }
docs: Specifies an match on a decomposing matcher with 3 extracted fields and then returns a fluent
  interface for specifying the action to take if the value matches this case.