// Path: src/main/java/com/github/vbauer/caesar/callback/AsyncCallback.java
// public interface AsyncCallback<T> {
// 
//     /**
//      * Callback-method on success.
//      *
//      * @param result result of operation
//      */
//     void onSuccess(T result);
// 
//     /**
//      * Callback-method on failure.
//      *
//      * @param caught exception
//      */
//     void onFailure(Throwable caught);
// 
// }


import com.github.vbauer.caesar.callback.AsyncCallback;
import java.lang.reflect.Method;
import java.util.concurrent.Callable;
package com.github.vbauer.caesar.runner.task;



/**
 * @author Vladislav Bauer
 * @param <T> result type
 */

public class AsyncCallbackTask<T> implements Callable<T> {

    private final Object origin;
    private final Object[] args;
    private final Method syncMethod;
// Path: src/main/java/com/github/vbauer/caesar/callback/AsyncCallback.java
// public interface AsyncCallback<T> {
// 
//     /**
//      * Callback-method on success.
//      *
//      * @param result result of operation
//      */
//     void onSuccess(T result);
// 
//     /**
//      * Callback-method on failure.
//      *
//      * @param caught exception
//      */
//     void onFailure(Throwable caught);
// 
// }


// Path: src/main/java/com/github/vbauer/caesar/runner/task/AsyncCallbackTask.java
import com.github.vbauer.caesar.callback.AsyncCallback;
import java.lang.reflect.Method;
import java.util.concurrent.Callable;

package com.github.vbauer.caesar.runner.task;



/**
 * @author Vladislav Bauer
 * @param <T> result type
 */

public class AsyncCallbackTask<T> implements Callable<T> {

    private final Object origin;
    private final Object[] args;
    private final Method syncMethod;
    private final AsyncCallback asyncCallback;