package io.vertx.serviceproxy.testmodel;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.json.JsonObject;
import io.vertx.serviceproxy.ServiceException;
/**
* @author <a href="mailto:oreilldf@gmail.com">Dan O'Reilly</a>
*/
public class MyServiceException extends ServiceException {
private final String extra;
/**
* Create a ServiceException.
*
* @param failureCode The failure code.
* @param message The failure message.
*/
public MyServiceException(int failureCode, String message, String extra) {
super(failureCode, message);
this.extra = extra;
}
public MyServiceException(int failureCode, String message, JsonObject debugInfo, String extra) {
super(failureCode, message, debugInfo);
this.extra = extra;
}
/**
* Get the extra data
*
* @return The extra data
*/
public String getExtra() {
return extra;
}
/**
* Wrap and MyServiceException in a failed Future and return it.
*
* @param failureCode The failure code.
* @param message The failure message.
* @param extra The extra data
* @param <T> The type returned if the Future succeeds.
* @return The MyServiceException wrapped in a failed future.
*/
public static <T> AsyncResult<T> fail(int failureCode, String message, String extra) {
return Future.failedFuture(new MyServiceException(failureCode, message, extra));
}
}