/** Creates a {@link Tube} that invokes protocol and logical handlers. */
  public @NotNull Tube createHandlerTube(@NotNull Tube next) {
    if (!binding.getHandlerChain().isEmpty()) {
      HandlerTube cousin = new ServerLogicalHandlerTube(binding, seiModel, wsdlModel, next);
      next = cousin;
      if (binding instanceof SOAPBinding) {
        // Add SOAPHandlerTube
        next = cousin = new ServerSOAPHandlerTube(binding, next, cousin);

        // Add MessageHandlerTube
        next = new ServerMessageHandlerTube(seiModel, binding, next, cousin);
      }
    }
    return next;
  }