public QueryRuntimeAPI getQueryRuntimeAPI() { Class<QueryRuntimeAPI> clazz = QueryRuntimeAPI.class; APIInterceptor aPIInterceptor = new APIInterceptor(new QueryRuntimeAPIImpl()); return (QueryRuntimeAPI) Proxy.newProxyInstance(QueryAPIAccessor.class.getClassLoader(), new Class[] {clazz}, aPIInterceptor); }
public Map<String, Object> getActivityInstanceVariables( ActivityInstanceUUID activityUUID) throws ActivityNotFoundException { ActivityInstance<ActivityBody> activity = getActivityInstance(activityUUID); return activity.getLastKnownVariableValues(); }
public Object getActivityInstanceVariable(ProcessInstanceUUID instanceUUID, String activityId, String iterationId, String activityInstanceId, String variableId) throws InstanceNotFoundException, ActivityNotFoundException, VariableNotFoundException { final Map<String, Object> variables = getActivityInstanceVariables(instanceUUID, activityId, iterationId, activityInstanceId); if (variables == null || !variables.containsKey(variableId)) { throw new VariableNotFoundException(instanceUUID, activityId, variableId); } return variables.get(variableId); }
private Set<InternalProcessInstance> getInternalProcessInstancesWithAttachements() { final Set<InternalProcessInstance> processes = getInternalProcessInstancesWithoutAttachements(); bindAttachementsToInternalProcessInstances(processes); return processes; }
private InternalProcessInstance getInternalProcessInstanceWithAttachments(final ProcessInstanceUUID instanceUUID) throws InstanceNotFoundException { final InternalProcessInstance internalProcessInstance = getInternalProcessInstanceWithoutAttachements(instanceUUID); if (internalProcessInstance != null && internalProcessInstance.getNbOfAttachments() > 0) { bindAttachementsToInternalProcessInstance(internalProcessInstance); } return internalProcessInstance; }
@Override public Set<ProcessInstance> getUserInstances() { final Set<InternalProcessInstance> processes = getUserProcessInstances(); // bind attachements from document service bindAttachementsToInternalProcessInstances(processes); final Set<ProcessInstance> result = new HashSet<ProcessInstance>(); for (final ProcessInstance record : processes) { result.add(new ProcessInstanceImpl(record)); } return result; }
@Override public Collection<TaskInstance> getTaskList(final ProcessInstanceUUID instanceUUID, final String userId, final ActivityState taskState) throws InstanceNotFoundException { return getTaskListUser(instanceUUID, userId, taskState); }
@Override public Object getVariable(final ActivityInstanceUUID activityUUID, final String variableId) throws ActivityNotFoundException, VariableNotFoundException { try { return getActivityInstanceVariable(activityUUID, variableId); } catch (final Throwable e) { final ActivityInstance activity = EnvTool.getAllQueriers().getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException("bai_QRAPII_11", activityUUID); } final Date maxDate = getMaxDate(activity); try { return getProcessInstanceVariable(activity.getProcessInstanceUUID(), variableId, maxDate); } catch (final InstanceNotFoundException e1) { // If activity exists, the process instance must exist too. Misc.unreachableStatement(); return null; } } }
@Override public Map<String, Object> getVariables(final ActivityInstanceUUID activityUUID) throws ActivityNotFoundException { final ActivityInstance activity = EnvTool.getAllQueriers(getQueryList()).getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException("bai_QRAPII_14", activityUUID); } final Date maxDate = getMaxDate(activity); try { final Map<String, Object> allVariables = new HashMap<String, Object>(); final Map<String, Object> localVariables = activity.getLastKnownVariableValues(); final Map<String, Object> globalVariables = getProcessInstanceVariables(activity.getProcessInstanceUUID(), maxDate); // add global first because if some variables are in both local and global // we want to keep local value allVariables.putAll(globalVariables); allVariables.putAll(localVariables); return allVariables; } catch (final InstanceNotFoundException e) { // If activity exists, the process instance must exist too. Misc.unreachableStatement(); return null; } }
public Object getVariable(ActivityInstanceUUID activityUUID, String variableId) throws ActivityNotFoundException, VariableNotFoundException { try { return getActivityInstanceVariable(activityUUID, variableId); } catch (VariableNotFoundException e) { ActivityFullInstance<ActivityBody> activity = EnvTool.getAllQueriers().getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException(activityUUID); } try { return getProcessInstanceVariable(activity.getProcessInstanceUUID(), variableId); } catch (InstanceNotFoundException e1) { // If activity exists, the process instance must exist too. Misc.unreachableStatement(); return null; } } }
@Override public Object getProcessInstanceVariable(final ProcessInstanceUUID instanceUUID, final String variableId) throws InstanceNotFoundException, VariableNotFoundException { final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final Map<String, Object> variables = getProcessInstanceVariables(instanceUUID); if (variables == null || !variables.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_10", instanceUUID, variableName); } final Object value = variables.get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { ex.printStackTrace(); throw new VariableNotFoundException("bai_QRAPII_17", instanceUUID, variableId); } } else { return value; } }
@Override public Set<ProcessInstance> getProcessInstances(final ProcessDefinitionUUID processUUID) { final Set<ProcessInstance> result = new HashSet<ProcessInstance>(); for (final InternalProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances(processUUID)) { bindAttachementsToInternalProcessInstance(record); result.add(new ProcessInstanceImpl(record)); } return result; }
public Object getProcessInstanceVariable(ProcessInstanceUUID instanceUUID, String variableId) throws InstanceNotFoundException, VariableNotFoundException { final Map<String, Object> variables = getProcessInstanceVariables(instanceUUID); if (variables == null || !variables.containsKey(variableId)) { throw new VariableNotFoundException(instanceUUID, variableId); } return variables.get(variableId); }
private void bindAttachementsToInternalProcessInstances(final Set<InternalProcessInstance> processes) { for (final InternalProcessInstance internalProcessInstance : processes) { bindAttachementsToInternalProcessInstance(internalProcessInstance); } }
@Override public Object getActivityInstanceVariable(final ActivityInstanceUUID activityUUID, final String variableId) throws ActivityNotFoundException, VariableNotFoundException { // search in transient variables final Map<String, Object> transientVariables = TransientData.getActivityTransientVariables(activityUUID); if (transientVariables != null && transientVariables.containsKey(variableId)) { return transientVariables.get(variableId); } // search in the database persisted variables final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final ActivityInstance activity = EnvTool.getAllQueriers().getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException("bai_QRAPII_11", activityUUID); } final Map<String, Object> variableValues = activity.getLastKnownVariableValues(); if (!variableValues.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_12", activityUUID, variableName); } final Object value = activity.getLastKnownVariableValues().get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { throw new VariableNotFoundException("bai_QRAPII_16", activityUUID, variableName); } } else { return value; } }
@Override public Collection<TaskInstance> getTaskList(final String userId, final ActivityState taskState) { return getTaskListUser(userId, taskState); }
private Object getProcessInstanceVariable(final ProcessInstanceUUID instanceUUID, final String variableId, final Date maxDate) throws InstanceNotFoundException, VariableNotFoundException { final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final Map<String, Object> variables = getProcessInstanceVariables(instanceUUID, maxDate); if (variables == null || !variables.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_9", instanceUUID, variableName); } final Object value = variables.get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { throw new VariableNotFoundException("bai_QRAPII_17", instanceUUID, variableName); } } else { return value; } }
@Override public Set<ProcessInstance> getProcessInstances(final Collection<ProcessInstanceUUID> instanceUUIDs) { final Set<ProcessInstance> result = new HashSet<ProcessInstance>(); if (instanceUUIDs == null || instanceUUIDs.isEmpty()) { return result; } for (final InternalProcessInstance record : EnvTool.getAllQueriers(getQueryList()).getProcessInstances( instanceUUIDs)) { bindAttachementsToInternalProcessInstance(record); result.add(new ProcessInstanceImpl(record)); } return result; }
public Map<String, Object> getVariables(ActivityInstanceUUID activityUUID) throws ActivityNotFoundException { ActivityFullInstance<ActivityBody> activity = EnvTool.getAllQueriers().getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException(activityUUID); } try { Map<String, Object> allVariables = new HashMap<String, Object>(); Map<String, Object> localVariables = activity.getLastKnownVariableValues(); Map<String, Object> globalVariables = getProcessInstanceVariables(activity.getProcessInstanceUUID()); //add global first because if some variables are in both local and global //we want to keep local value allVariables.putAll(globalVariables); allVariables.putAll(localVariables); return allVariables; } catch (InstanceNotFoundException e) { // If activity exists, the process instance must exist too. Misc.unreachableStatement(); return null; } } }
public Collection<ActivityInstance<TaskInstance>> getTaskList(ProcessInstanceUUID instanceUUID, String userId, TaskState taskState) throws InstanceNotFoundException { return getTaskListUser(instanceUUID, userId, taskState); }