Package io.lumify.web.clientapi

Source Code of io.lumify.web.clientapi.LongRunningProcessApiExt

package io.lumify.web.clientapi;

import io.lumify.web.clientapi.codegen.ApiException;
import io.lumify.web.clientapi.codegen.LongrunningprocessApi;
import io.lumify.web.clientapi.model.ClientApiLongRunningProcess;
import io.lumify.web.clientapi.model.util.ClientApiConverter;
import org.json.JSONObject;

public class LongRunningProcessApiExt extends LongrunningprocessApi {
    public ClientApiLongRunningProcess waitById(String longRunningProcessId) throws ApiException {
        while (true) {
            ClientApiLongRunningProcess longRunningProcess = findById(longRunningProcessId);
            if (longRunningProcess.getEndTime() != null || longRunningProcess.getError() != null || longRunningProcess.isCanceled()) {
                return longRunningProcess;
            }
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException("Could not sleep", e);
            }
        }
    }

    public ClientApiLongRunningProcess findById(String longRunningProcessId) throws ApiException {
        String s = findByIdRaw(longRunningProcessId);
        ClientApiLongRunningProcess proc = ClientApiConverter.toClientApi(s, ClientApiLongRunningProcess.class);
        if (proc != null) {
            JSONObject json = new JSONObject(s);
            String resultString = json.optString("results");
            proc.setResultsString(resultString);
        }
        return proc;
    }
}
TOP

Related Classes of io.lumify.web.clientapi.LongRunningProcessApiExt

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.