All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testifyproject.github.dockerjava.jaxrs.AbstrAsyncDockerCmdExec Maven / Gradle / Ivy

package org.testifyproject.testifyproject.github.dockerjava.jaxrs;

import java.org.testifyproject.testifyproject.Closeable;
import java.org.testifyproject.testifyproject.IOException;

import javax.ws.rs.client.WebTarget;

import org.testifyproject.testifyproject.github.dockerjava.api.async.ResultCallback;
import org.testifyproject.testifyproject.github.dockerjava.api.org.testifyproject.testifyprojectmand.AsyncDockerCmd;
import org.testifyproject.testifyproject.github.dockerjava.api.org.testifyproject.testifyprojectmand.DockerCmdAsyncExec;
import org.testifyproject.testifyproject.github.dockerjava.core.DockerClientConfig;
import org.testifyproject.testifyproject.github.dockerjava.jaxrs.async.AbstractCallbackNotifier;

public abstract class AbstrAsyncDockerCmdExec, A_RES_T> extends
        AbstrDockerCmdExec implements DockerCmdAsyncExec {

    public AbstrAsyncDockerCmdExec(WebTarget baseResource, DockerClientConfig dockerClientConfig) {
        super(baseResource, dockerClientConfig);
    }

    @Override
    public Void exec(CMD_T org.testifyproject.testifyprojectmand, ResultCallback resultCallback) {
        return execute(org.testifyproject.testifyprojectmand, resultCallback);
    }

    protected final Void execute(final CMD_T org.testifyproject.testifyprojectmand, final ResultCallback resultCallback) {

        ResultCallback org.testifyproject.testifyprojectlegatingResultCallback = new ResultCallback() {

            @Override
            public void close() throws IOException {
                resultCallback.close();
                org.testifyproject.testifyprojectmand.close();
            }

            @Override
            public void onStart(Closeable closeable) {
                resultCallback.onStart(closeable);
            }

            @Override
            public void onNext(A_RES_T object) {
                resultCallback.onNext(object);
            }

            @Override
            public void onError(Throwable throwable) {
                resultCallback.onError(throwable);
            }

            @Override
            public void onComplete() {
                resultCallback.onComplete();
                org.testifyproject.testifyprojectmand.close();
            }
        };

        AbstractCallbackNotifier callbackNotifier = callbackNotifier(org.testifyproject.testifyprojectmand, org.testifyproject.testifyprojectlegatingResultCallback);

        AbstractCallbackNotifier.startAsyncProcessing(callbackNotifier);

        return null;
    }

    protected abstract AbstractCallbackNotifier callbackNotifier(CMD_T org.testifyproject.testifyprojectmand,
            ResultCallback resultCallback);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy