return false; } else if (!activityUUID.equals(other.activityUUID)) { return false;
@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; }
@Deprecated public ActivityDefinitionUUID getActivityDefinitionUUID() { return new ActivityDefinitionUUID(getProcessInstanceUUID().getProcessDefinitionUUID(), getActivityName()); }
@SuppressWarnings("unchecked") public ActivityInstanceImpl(final ActivityInstance< ? extends ActivityBody > record) { super(record); this.uuid = new ActivityInstanceUUID(record.getUUID()); this.activityId = record.getActivityId(); this.body = (T) record.getBody().copy(); this.iterationId = record.getIterationId(); this.activityInstanceId = record.getActivityInstanceId(); this.variablesBeforeStarted = record.getVariablesBeforeStarted(); List<VariableUpdate> list = record.getVariableUpdates(); if (list != null && !list.isEmpty()) { this.variableUpdates = new ArrayList<VariableUpdate>(); for (VariableUpdate varUpdate : list) { this.variableUpdates.add(new VariableUpdateImpl(varUpdate)); } } }
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); }
@Override public Set<CatchingEvent> getEvents(final ActivityInstanceUUID activityUUID) { final EventService eventService = EnvTool.getEventService(); final Execution exec = EnvTool.getJournal().getExecutionOnActivity(activityUUID.getProcessInstanceUUID(), activityUUID); if (exec == null) { return Collections.emptySet(); } final List<Job> jobs = eventService.getTimerJobs(exec.getEventUUID()); return getEvents(jobs); }
@Override @SuppressWarnings("unchecked") public List<Comment> getActivityInstanceCommentFeed(final ActivityInstanceUUID activityUUID) { final Query query = getSession().getNamedQuery("getActivityComments"); query.setString("activityUUID", activityUUID.getValue()); return query.list(); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (activityName == null ? 0 : activityName.hashCode()); result = prime * result + (activityUUID == null ? 0 : activityUUID.hashCode()); result = prime * result + (correlationKey1 == null ? 0 : correlationKey1.hashCode()); result = prime * result + (correlationKey2 == null ? 0 : correlationKey2.hashCode()); result = prime * result + (correlationKey3 == null ? 0 : correlationKey3.hashCode()); result = prime * result + (correlationKey4 == null ? 0 : correlationKey4.hashCode()); result = prime * result + (correlationKey5 == null ? 0 : correlationKey5.hashCode()); result = prime * result + (int) (id ^ id >>> 32); result = prime * result + (instanceUUID == null ? 0 : instanceUUID.hashCode()); result = prime * result + (locked ? 1231 : 1237); result = prime * result + (name == null ? 0 : name.hashCode()); result = prime * result + (processName == null ? 0 : processName.hashCode()); return result; }
@Override public ActivityInstanceUUID getOneTask(final ProcessInstanceUUID instanceUUID, final ActivityState taskState) { final Querier journal = EnvTool.getJournalQueriers(getQueryList()); final TaskInstance task = journal.getOneTask(EnvTool.getUserId(), instanceUUID, taskState); if (task == null) { return null; } return new ActivityInstanceUUID(task.getUUID()); }
@Override @SuppressWarnings("deprecation") public void enableEventsInFailureIncomingEvents(final ActivityInstanceUUID activityUUID) { final Execution execution = EnvTool.getJournal().getExecutionOnActivity(activityUUID.getProcessInstanceUUID(), activityUUID); final List<Job> jobs = getDbSession().getJobsOfExecution(execution.getEventUUID()); final int retries = EnvTool.getEventExecutor().getRetries(); for (final Job job : jobs) { if (job.getRetries() == 0) { job.setRetries(retries); } } refreshJobExecutor(); }
@Override public int getNumberOfActivityInstanceComments(final ActivityInstanceUUID activityUUID) { final Query query = getSession().getNamedQuery("getNumberOfActivityComments"); query.setString("activityUUID", activityUUID.getValue()); return ((Long) query.uniqueResult()).intValue(); }
@Override public ActivityInstanceUUID getOneTask(final ProcessDefinitionUUID processUUID, final ActivityState taskState) { final Querier journal = EnvTool.getJournalQueriers(getQueryList()); final TaskInstance task = journal.getOneTask(EnvTool.getUserId(), processUUID, taskState); if (task == null) { return null; } return new ActivityInstanceUUID(task.getUUID()); }
@Override public InternalActivityInstance getActivityInstance(final ActivityInstanceUUID activityInstanceUUID) { final Query query = getSession().getNamedQuery("getActivityInstanceFromUUID"); query.setString("activityUUID", activityInstanceUUID.toString()); return (InternalActivityInstance) query.uniqueResult(); }
@Override public ActivityInstance getActivity(final ActivityInstanceUUID activityUUID) { if (getActivities() != null) { for (final ActivityInstance activity : getActivities()) { if (activity.getUUID().equals(activityUUID)) { return activity; } } } return null; }
@Deprecated public ActivityDefinitionUUID getActivityDefinitionUUID() { return new ActivityDefinitionUUID(getProcessInstanceUUID().getProcessDefinitionUUID(), getActivityName()); }
static Job getTargetErrorJob(final Execution execution) { final ProcessDefinition process = execution.getProcessDefinition(); final ProcessInstance instance = execution.getInstance(); ActivityInstanceUUID parentActivityUUID = null; if (ProcessType.EVENT_SUB_PROCESS.equals(process.getType())) { final InternalProcessInstance rootEventSubProcess = EnvTool.getJournalQueriers().getProcessInstance( instance.getParentInstanceUUID()); parentActivityUUID = rootEventSubProcess.getParentActivityUUID(); } else { parentActivityUUID = instance.getParentActivityUUID(); } if (parentActivityUUID != null) { final Execution exec = EnvTool.getJournalQueriers().getExecutionOnActivity( parentActivityUUID.getProcessInstanceUUID(), parentActivityUUID); final String eventName = ActivityUtil.getErrorEventName(exec.getNode(), execution.getNode().getTimerCondition()); if (eventName != null) { final int indexOf = eventName.indexOf(EventConstants.SEPARATOR); return JobBuilder.boundaryErrorJob(eventName.substring(0, indexOf), exec.getInstance().getRootInstanceUUID(), exec.getEventUUID(), exec.getInstance().getProcessInstanceUUID()); } } return null; }
@Override public Set<OutgoingEventInstance> getBoundaryOutgoingEvents(final ActivityInstanceUUID activityUUID) { final Set<OutgoingEventInstance> result = new HashSet<OutgoingEventInstance>(); final Query query = getSession().getNamedQuery("getActivityBoundaryOutgoingEvents"); query.setString("activityUUID", activityUUID.getValue()); CollectionUtils.addAll(result, query.iterate()); return result; }
@SuppressWarnings("unchecked") public ActivityInstanceImpl(final ActivityInstance< ? extends ActivityBody > record) { super(record); this.uuid = new ActivityInstanceUUID(record.getUUID()); this.activityId = record.getActivityId(); this.body = (T) record.getBody().copy(); this.iterationId = record.getIterationId(); this.activityInstanceId = record.getActivityInstanceId(); this.variablesBeforeStarted = record.getVariablesBeforeStarted(); List<VariableUpdate> list = record.getVariableUpdates(); if (list != null && !list.isEmpty()) { this.variableUpdates = new ArrayList<VariableUpdate>(); for (VariableUpdate varUpdate : list) { this.variableUpdates.add(new VariableUpdateImpl(varUpdate)); } } }
@Override public ActivityState getActivityInstanceState(final ActivityInstanceUUID activityInstanceUUID) { final Query query = getSession().getNamedQuery("getActivityInstanceStateFromUUID"); query.setString("activityUUID", activityInstanceUUID.toString()); return (ActivityState) query.uniqueResult(); }
@Override public ActivityInstance getActivity(final ActivityInstanceUUID activityUUID) { if (getActivities() != null) { for (final ActivityInstance activity : getActivities()) { if (activity.getUUID().equals(activityUUID)) { return activity; } } } return null; }