package org.bonitasoft.web.rest.server.api.bpm.flownode;
import org.bonitasoft.engine.api.ProcessAPI;
import org.bonitasoft.engine.bpm.data.DataInstance;
import org.bonitasoft.engine.bpm.data.DataNotFoundException;
import org.bonitasoft.web.rest.server.api.resource.CommonResource;
import org.bonitasoft.web.toolkit.client.common.exception.api.APIException;
import org.restlet.resource.Get;
public class ActivityVariableResource extends CommonResource {
public static final String ACTIVITYDATA_ACTIVITY_ID = "activityid";
public static final String ACTIVITYDATA_DATA_NAME = "dataname";
private final ProcessAPI processAPI;
public ActivityVariableResource(final ProcessAPI processAPI) {
this.processAPI = processAPI;
}
@Get("json")
public DataInstance getTaskVariable() {
try {
final String taskId = getAttribute(ACTIVITYDATA_ACTIVITY_ID);
final String dataName = getAttribute(ACTIVITYDATA_DATA_NAME);
return getTaskVariableInstance(dataName, Long.valueOf(taskId));
} catch (final Exception e) {
throw new APIException(e);
}
}
private DataInstance getTaskVariableInstance(final String dataName, final Long activityInstanceId) throws DataNotFoundException {
return processAPI.getActivityDataInstance(dataName, activityInstanceId);
}
}