package org.jboss.resteasy.test.asynch.resource;

import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.TimeoutHandler;
import java.util.concurrent.TimeUnit;

public class CallbackTimeoutHandler implements TimeoutHandler {

   private int function = 0;

   public CallbackTimeoutHandler(final int function) {
      super();
      this.function = function;
   }

   @Override
   public void handleTimeout(AsyncResponse asyncResponse) {
      switch (function) {
         case 1:
            asyncResponse.setTimeout(200, TimeUnit.MILLISECONDS);
            break;
         case 2:
            asyncResponse.cancel();
            break;
         case 3:
            asyncResponse.resume(CallbackResource.RESUMED);
            break;
      }
   }

}
