@Override @SuppressWarnings("unchecked") public Map<ActivityInstanceUUID, Integer> getNumberOfActivityInstanceComments( final Set<ActivityInstanceUUID> activityUUIDs) { final Query query = getSession().getNamedQuery("getActivitiesComments"); final List<String> uuids = new ArrayList<String>(); for (final ActivityInstanceUUID uuid : activityUUIDs) { uuids.add(uuid.toString()); } query.setParameterList("uuids", uuids); final List<Comment> comments = query.list(); final Map<ActivityInstanceUUID, Integer> result = new HashMap<ActivityInstanceUUID, Integer>(); for (final Comment comment : comments) { final ActivityInstanceUUID activityUUID = comment.getActivityUUID(); if (result.containsKey(activityUUID)) { result.put(activityUUID, result.get(activityUUID) + 1); } else { result.put(activityUUID, 1); } } return result; }
@Override public InternalActivityInstance getActivityInstance(final ActivityInstanceUUID activityInstanceUUID) { final Query query = getSession().getNamedQuery("getActivityInstanceFromUUID"); query.setString("activityUUID", activityInstanceUUID.toString()); return (InternalActivityInstance) query.uniqueResult(); }
@Override public ActivityState getActivityInstanceState(final ActivityInstanceUUID activityInstanceUUID) { final Query query = getSession().getNamedQuery("getActivityInstanceStateFromUUID"); query.setString("activityUUID", activityInstanceUUID.toString()); return (ActivityState) query.uniqueResult(); }
@Override public Execution getExecutionPointingOnNode(final ActivityInstanceUUID activityUUID) { final Query query = getSession().getNamedQuery("findInstanceExecutionPointingOnNode"); query.setString("activityUUID", activityUUID.toString()); return (Execution) query.uniqueResult(); }
@SuppressWarnings("unchecked") public ActivityFullInstance<ActivityBody> getActivityInstance( ActivityInstanceUUID activityInstanceUUID) { Query query = getSession().getNamedQuery("getActivityInstanceFromUUID"); query.setCacheable(true); query.setString("activityUUID", activityInstanceUUID.toString()); return (ActivityFullInstance<ActivityBody>)query.uniqueResult(); }
@Override public TaskInstance getTaskInstance(final ActivityInstanceUUID taskUUID) { final Query query = getSession().getNamedQuery("findTaskInstance"); query.setString("taskUUID", taskUUID.toString()); query.setMaxResults(1); return (TaskInstance) query.uniqueResult(); }
protected TaskRunTime getTask(final XpdlExecution xpdlExecution) { return new TaskRunTime( new TaskUUID(xpdlExecution.getCurrentActivityInstanceUUID().toString()), xpdlExecution.getNode().getName(), this, xpdlExecution); }
public static void ready(final Execution internalExecution) throws TaskNotFoundException { final ActivityInstanceUUID taskUUID = new ActivityInstanceUUID(internalExecution.getActivityInstanceUUID() .toString()); final InternalActivityDefinition activityDef = internalExecution.getNode(); final TaskInstance task = getTask(taskUUID); final String activityName = task.getActivityName(); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Ready task : " + taskUUID + " on activity " + activityName); } // get performer (aka participant/swimlane) final Set<Performer> performers = getPerformers(activityDef); String userId = null; Set<String> candidates = null; if (performers != null) { candidates = getCandidates(performers, task); final Performer performer = performers.iterator().next(); if (performer.getFilterDefinition() != null) { candidates = executeFilter(task, candidates, performer); if (candidates.size() == 1) { userId = candidates.iterator().next(); } } } if (userId != null) { EnvTool.getRecorder().recordTaskReady(taskUUID, null, userId); } else { EnvTool.getRecorder().recordTaskReady(taskUUID, candidates, null); } ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnReady); }