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; } }