class TimeoutStrategy implements InvocationStrategy {

  @Override
  public <T> Invocation<T> apply(final Invocation<T> invocation) {
    assertNotNull(invocation, "Invocation must not null");
    return new TimeoutInvocation<T>(timeout, invocation.getRequestMethod(),
        invocation.getParameters());
  }

}