use of org.camunda.bpm.engine.impl.TaskQueryVariableValue in project camunda-bpm-platform by camunda.
the class TaskQueryDto method fromQuery.
public static TaskQueryDto fromQuery(Query<?, ?> query, boolean isOrQueryActive) {
TaskQueryImpl taskQuery = (TaskQueryImpl) query;
TaskQueryDto dto = new TaskQueryDto();
if (!isOrQueryActive) {
dto.orQueries = new ArrayList<TaskQueryDto>();
for (TaskQueryImpl orQuery : taskQuery.getQueries()) {
if (orQuery.isOrQueryActive()) {
dto.orQueries.add(fromQuery(orQuery, true));
}
}
}
dto.activityInstanceIdIn = taskQuery.getActivityInstanceIdIn();
dto.caseDefinitionId = taskQuery.getCaseDefinitionId();
dto.caseDefinitionKey = taskQuery.getCaseDefinitionKey();
dto.caseDefinitionName = taskQuery.getCaseDefinitionName();
dto.caseDefinitionNameLike = taskQuery.getCaseDefinitionNameLike();
dto.caseExecutionId = taskQuery.getCaseExecutionId();
dto.caseInstanceBusinessKey = taskQuery.getCaseInstanceBusinessKey();
dto.caseInstanceBusinessKeyLike = taskQuery.getCaseInstanceBusinessKeyLike();
dto.caseInstanceId = taskQuery.getCaseInstanceId();
dto.candidateUser = taskQuery.getCandidateUser();
dto.candidateGroup = taskQuery.getCandidateGroup();
dto.candidateGroups = taskQuery.getCandidateGroupsInternal();
dto.includeAssignedTasks = taskQuery.isIncludeAssignedTasksInternal();
dto.withCandidateGroups = taskQuery.isWithCandidateGroups();
dto.withoutCandidateGroups = taskQuery.isWithoutCandidateGroups();
dto.withCandidateUsers = taskQuery.isWithCandidateUsers();
dto.withoutCandidateUsers = taskQuery.isWithoutCandidateUsers();
dto.processInstanceBusinessKey = taskQuery.getProcessInstanceBusinessKey();
dto.processInstanceBusinessKeyLike = taskQuery.getProcessInstanceBusinessKeyLike();
dto.processDefinitionKey = taskQuery.getProcessDefinitionKey();
dto.processDefinitionKeyIn = taskQuery.getProcessDefinitionKeys();
dto.processDefinitionId = taskQuery.getProcessDefinitionId();
dto.executionId = taskQuery.getExecutionId();
dto.processDefinitionName = taskQuery.getProcessDefinitionName();
dto.processDefinitionNameLike = taskQuery.getProcessDefinitionNameLike();
dto.processInstanceId = taskQuery.getProcessInstanceId();
dto.assignee = taskQuery.getAssignee();
dto.assigneeLike = taskQuery.getAssigneeLike();
dto.taskDefinitionKey = taskQuery.getKey();
dto.taskDefinitionKeyIn = taskQuery.getKeys();
dto.taskDefinitionKeyLike = taskQuery.getKeyLike();
dto.description = taskQuery.getDescription();
dto.descriptionLike = taskQuery.getDescriptionLike();
dto.involvedUser = taskQuery.getInvolvedUser();
dto.maxPriority = taskQuery.getMaxPriority();
dto.minPriority = taskQuery.getMinPriority();
dto.name = taskQuery.getName();
dto.nameNotEqual = taskQuery.getNameNotEqual();
dto.nameLike = taskQuery.getNameLike();
dto.nameNotLike = taskQuery.getNameNotLike();
dto.owner = taskQuery.getOwner();
dto.priority = taskQuery.getPriority();
dto.assigned = taskQuery.isAssignedInternal();
dto.unassigned = taskQuery.isUnassignedInternal();
dto.parentTaskId = taskQuery.getParentTaskId();
dto.dueAfter = taskQuery.getDueAfter();
dto.dueBefore = taskQuery.getDueBefore();
dto.dueDate = taskQuery.getDueDate();
dto.followUpAfter = taskQuery.getFollowUpAfter();
if (taskQuery.isFollowUpNullAccepted()) {
dto.followUpBeforeOrNotExistent = taskQuery.getFollowUpBefore();
} else {
dto.followUpBefore = taskQuery.getFollowUpBefore();
}
dto.followUpDate = taskQuery.getFollowUpDate();
dto.createdAfter = taskQuery.getCreateTimeAfter();
dto.createdBefore = taskQuery.getCreateTimeBefore();
dto.createdOn = taskQuery.getCreateTime();
if (taskQuery.getDelegationState() != null) {
dto.delegationState = taskQuery.getDelegationState().toString();
}
if (taskQuery.isTenantIdSet()) {
if (taskQuery.getTenantIds() != null) {
dto.tenantIdIn = taskQuery.getTenantIds();
} else {
dto.withoutTenantId = true;
}
}
dto.processVariables = new ArrayList<VariableQueryParameterDto>();
dto.taskVariables = new ArrayList<VariableQueryParameterDto>();
dto.caseInstanceVariables = new ArrayList<VariableQueryParameterDto>();
for (TaskQueryVariableValue variableValue : taskQuery.getVariables()) {
VariableQueryParameterDto variableValueDto = new VariableQueryParameterDto(variableValue);
if (variableValue.isProcessInstanceVariable()) {
dto.processVariables.add(variableValueDto);
} else if (variableValue.isLocal()) {
dto.taskVariables.add(variableValueDto);
} else {
dto.caseInstanceVariables.add(variableValueDto);
}
}
if (taskQuery.getSuspensionState() == SuspensionState.ACTIVE) {
dto.active = true;
}
if (taskQuery.getSuspensionState() == SuspensionState.SUSPENDED) {
dto.suspended = true;
}
// sorting
List<QueryOrderingProperty> orderingProperties = taskQuery.getOrderingProperties();
if (!orderingProperties.isEmpty()) {
dto.setSorting(convertQueryOrderingPropertiesToSortingDtos(orderingProperties));
}
// expressions
Map<String, String> expressions = taskQuery.getExpressions();
if (expressions.containsKey("taskAssignee")) {
dto.setAssigneeExpression(expressions.get("taskAssignee"));
}
if (expressions.containsKey("taskAssigneeLike")) {
dto.setAssigneeLikeExpression(expressions.get("taskAssigneeLike"));
}
if (expressions.containsKey("taskOwner")) {
dto.setOwnerExpression(expressions.get("taskOwner"));
}
if (expressions.containsKey("taskCandidateUser")) {
dto.setCandidateUserExpression(expressions.get("taskCandidateUser"));
}
if (expressions.containsKey("taskInvolvedUser")) {
dto.setInvolvedUserExpression(expressions.get("taskInvolvedUser"));
}
if (expressions.containsKey("taskCandidateGroup")) {
dto.setCandidateGroupExpression(expressions.get("taskCandidateGroup"));
}
if (expressions.containsKey("taskCandidateGroupIn")) {
dto.setCandidateGroupsExpression(expressions.get("taskCandidateGroupIn"));
}
if (expressions.containsKey("taskCreatedOne")) {
dto.setCreatedOnExpression(expressions.get("taskCreatedOne"));
}
if (expressions.containsKey("taskCreatedBefore")) {
dto.setCreatedBeforeExpression(expressions.get("taskCreatedBefore"));
}
if (expressions.containsKey("taskCreatedAfter")) {
dto.setCreatedAfterExpression(expressions.get("taskCreatedAfter"));
}
if (expressions.containsKey("dueDate")) {
dto.setDueDateExpression(expressions.get("dueDate"));
}
if (expressions.containsKey("dueBefore")) {
dto.setDueBeforeExpression(expressions.get("dueBefore"));
}
if (expressions.containsKey("dueAfter")) {
dto.setDueAfterExpression(expressions.get("dueAfter"));
}
if (expressions.containsKey("followUpDate")) {
dto.setFollowUpDateExpression(expressions.get("followUpDate"));
}
if (expressions.containsKey("followUpBefore")) {
dto.setFollowUpBeforeExpression(expressions.get("followUpBefore"));
}
if (expressions.containsKey("followUpBeforeOrNotExistent")) {
dto.setFollowUpBeforeOrNotExistentExpression(expressions.get("followUpBeforeOrNotExistent"));
}
if (expressions.containsKey("followUpAfter")) {
dto.setFollowUpAfterExpression(expressions.get("followUpAfter"));
}
if (expressions.containsKey("processInstanceBusinessKey")) {
dto.setProcessInstanceBusinessKeyExpression(expressions.get("processInstanceBusinessKey"));
}
if (expressions.containsKey("processInstanceBusinessKeyLike")) {
dto.setProcessInstanceBusinessKeyLikeExpression(expressions.get("processInstanceBusinessKeyLike"));
}
return dto;
}
use of org.camunda.bpm.engine.impl.TaskQueryVariableValue in project camunda-bpm-platform by camunda.
the class JsonTaskQueryVariableValueConverter method toObject.
public TaskQueryVariableValue toObject(JSONObject json) {
String name = json.getString("name");
Object value = json.get("value");
QueryOperator operator = QueryOperator.valueOf(json.getString("operator"));
boolean isTaskVariable = json.getBoolean("taskVariable");
boolean isProcessVariable = json.getBoolean("processVariable");
return new TaskQueryVariableValue(name, value, operator, isTaskVariable, isProcessVariable);
}
use of org.camunda.bpm.engine.impl.TaskQueryVariableValue in project camunda-bpm-platform by camunda.
the class FilterTaskQueryTest method testTaskQuery.
public void testTaskQuery() {
// create query
TaskQueryImpl query = new TaskQueryImpl();
query.taskId(testString);
query.taskName(testString);
query.taskNameNotEqual(testString);
query.taskNameLike(testString);
query.taskNameNotLike(testString);
query.taskDescription(testString);
query.taskDescriptionLike(testString);
query.taskPriority(testInteger);
query.taskMinPriority(testInteger);
query.taskMaxPriority(testInteger);
query.taskAssignee(testString);
query.taskAssigneeExpression(testString);
query.taskAssigneeLike(testString);
query.taskAssigneeLikeExpression(testString);
query.taskInvolvedUser(testString);
query.taskInvolvedUserExpression(testString);
query.taskOwner(testString);
query.taskOwnerExpression(testString);
query.taskUnassigned();
query.taskAssigned();
query.taskDelegationState(testDelegationState);
query.taskCandidateGroupIn(testCandidateGroups);
query.taskCandidateGroupInExpression(testString);
query.withCandidateGroups();
query.withoutCandidateGroups();
query.withCandidateUsers();
query.withoutCandidateUsers();
query.processInstanceId(testString);
query.executionId(testString);
query.activityInstanceIdIn(testActivityInstances);
query.taskCreatedOn(testDate);
query.taskCreatedOnExpression(testString);
query.taskCreatedBefore(testDate);
query.taskCreatedBeforeExpression(testString);
query.taskCreatedAfter(testDate);
query.taskCreatedAfterExpression(testString);
query.taskDefinitionKey(testString);
query.taskDefinitionKeyIn(testKeys);
query.taskDefinitionKeyLike(testString);
query.processDefinitionKey(testString);
query.processDefinitionKeyIn(testKeys);
query.processDefinitionId(testString);
query.processDefinitionName(testString);
query.processDefinitionNameLike(testString);
query.processInstanceBusinessKey(testString);
query.processInstanceBusinessKeyExpression(testString);
query.processInstanceBusinessKeyIn(testKeys);
query.processInstanceBusinessKeyLike(testString);
query.processInstanceBusinessKeyLikeExpression(testString);
// variables
query.taskVariableValueEquals(variableNames[0], variableValues[0]);
query.taskVariableValueGreaterThanOrEquals(variableNames[1], variableValues[1]);
query.processVariableValueLessThan(variableNames[2], variableValues[2]);
query.processVariableValueLike(variableNames[3], (String) variableValues[3]);
query.caseInstanceVariableValueNotEquals(variableNames[4], variableValues[4]);
query.caseInstanceVariableValueLessThanOrEquals(variableNames[5], variableValues[5]);
query.dueDate(testDate);
query.dueDateExpression(testString);
query.dueBefore(testDate);
query.dueBeforeExpression(testString);
query.dueAfter(testDate);
query.dueAfterExpression(testString);
query.followUpDate(testDate);
query.followUpDateExpression(testString);
query.followUpBefore(testDate);
query.followUpBeforeExpression(testString);
query.followUpAfter(testDate);
query.followUpAfterExpression(testString);
query.excludeSubtasks();
query.suspended();
query.caseDefinitionKey(testString);
query.caseDefinitionId(testString);
query.caseDefinitionName(testString);
query.caseDefinitionNameLike(testString);
query.caseInstanceId(testString);
query.caseInstanceBusinessKey(testString);
query.caseInstanceBusinessKeyLike(testString);
query.caseExecutionId(testString);
// ordering
query.orderByExecutionId().desc();
query.orderByDueDate().asc();
query.orderByProcessVariable("var", ValueType.STRING).desc();
List<QueryOrderingProperty> expectedOrderingProperties = query.getOrderingProperties();
// save filter
filter.setQuery(query);
filterService.saveFilter(filter);
// fetch from db
filter = filterService.createTaskFilterQuery().singleResult();
// test query
query = filter.getQuery();
assertEquals(testString, query.getTaskId());
assertEquals(testString, query.getName());
assertEquals(testString, query.getNameNotEqual());
assertEquals(testString, query.getNameNotLike());
assertEquals(testString, query.getNameLike());
assertEquals(testString, query.getDescription());
assertEquals(testString, query.getDescriptionLike());
assertEquals(testInteger, query.getPriority());
assertEquals(testInteger, query.getMinPriority());
assertEquals(testInteger, query.getMaxPriority());
assertEquals(testString, query.getAssignee());
assertEquals(testString, query.getExpressions().get("taskAssignee"));
assertEquals(testString, query.getAssigneeLike());
assertEquals(testString, query.getExpressions().get("taskAssigneeLike"));
assertEquals(testString, query.getInvolvedUser());
assertEquals(testString, query.getExpressions().get("taskInvolvedUser"));
assertEquals(testString, query.getOwner());
assertEquals(testString, query.getExpressions().get("taskOwner"));
assertTrue(query.isUnassigned());
assertTrue(query.isAssigned());
assertEquals(testDelegationState, query.getDelegationState());
assertEquals(testCandidateGroups, query.getCandidateGroups());
assertTrue(query.isWithCandidateGroups());
assertTrue(query.isWithoutCandidateGroups());
assertTrue(query.isWithCandidateUsers());
assertTrue(query.isWithoutCandidateUsers());
assertEquals(testString, query.getExpressions().get("taskCandidateGroupIn"));
assertEquals(testString, query.getProcessInstanceId());
assertEquals(testString, query.getExecutionId());
assertEquals(testActivityInstances.length, query.getActivityInstanceIdIn().length);
for (int i = 0; i < query.getActivityInstanceIdIn().length; i++) {
assertEquals(testActivityInstances[i], query.getActivityInstanceIdIn()[i]);
}
assertEquals(testDate, query.getCreateTime());
assertEquals(testString, query.getExpressions().get("taskCreatedOn"));
assertEquals(testDate, query.getCreateTimeBefore());
assertEquals(testString, query.getExpressions().get("taskCreatedBefore"));
assertEquals(testDate, query.getCreateTimeAfter());
assertEquals(testString, query.getExpressions().get("taskCreatedAfter"));
assertEquals(testString, query.getKey());
assertEquals(testKeys.length, query.getKeys().length);
for (int i = 0; i < query.getKeys().length; i++) {
assertEquals(testKeys[i], query.getKeys()[i]);
}
assertEquals(testString, query.getKeyLike());
assertEquals(testString, query.getProcessDefinitionKey());
for (int i = 0; i < query.getProcessDefinitionKeys().length; i++) {
assertEquals(testKeys[i], query.getProcessDefinitionKeys()[i]);
}
assertEquals(testString, query.getProcessDefinitionId());
assertEquals(testString, query.getProcessDefinitionName());
assertEquals(testString, query.getProcessDefinitionNameLike());
assertEquals(testString, query.getProcessInstanceBusinessKey());
assertEquals(testString, query.getExpressions().get("processInstanceBusinessKey"));
for (int i = 0; i < query.getProcessInstanceBusinessKeys().length; i++) {
assertEquals(testKeys[i], query.getProcessInstanceBusinessKeys()[i]);
}
assertEquals(testString, query.getProcessInstanceBusinessKeyLike());
assertEquals(testString, query.getExpressions().get("processInstanceBusinessKeyLike"));
// variables
List<TaskQueryVariableValue> variables = query.getVariables();
for (int i = 0; i < variables.size(); i++) {
TaskQueryVariableValue variable = variables.get(i);
assertEquals(variableNames[i], variable.getName());
assertEquals(variableValues[i], variable.getValue());
assertEquals(variableOperators[i], variable.getOperator());
assertEquals(isTaskVariable[i], variable.isLocal());
assertEquals(isProcessVariable[i], variable.isProcessInstanceVariable());
}
assertEquals(testDate, query.getDueDate());
assertEquals(testString, query.getExpressions().get("dueDate"));
assertEquals(testDate, query.getDueBefore());
assertEquals(testString, query.getExpressions().get("dueBefore"));
assertEquals(testDate, query.getDueAfter());
assertEquals(testString, query.getExpressions().get("dueAfter"));
assertEquals(testDate, query.getFollowUpDate());
assertEquals(testString, query.getExpressions().get("followUpDate"));
assertEquals(testDate, query.getFollowUpBefore());
assertEquals(testString, query.getExpressions().get("followUpBefore"));
assertEquals(testDate, query.getFollowUpAfter());
assertEquals(testString, query.getExpressions().get("followUpAfter"));
assertTrue(query.isExcludeSubtasks());
assertEquals(SuspensionState.SUSPENDED, query.getSuspensionState());
assertEquals(testString, query.getCaseDefinitionKey());
assertEquals(testString, query.getCaseDefinitionId());
assertEquals(testString, query.getCaseDefinitionName());
assertEquals(testString, query.getCaseDefinitionNameLike());
assertEquals(testString, query.getCaseInstanceId());
assertEquals(testString, query.getCaseInstanceBusinessKey());
assertEquals(testString, query.getCaseInstanceBusinessKeyLike());
assertEquals(testString, query.getCaseExecutionId());
// ordering
verifyOrderingProperties(expectedOrderingProperties, query.getOrderingProperties());
}
use of org.camunda.bpm.engine.impl.TaskQueryVariableValue in project camunda-bpm-platform by camunda.
the class FilterTaskQueryTest method testExtendingVariableQuery.
public void testExtendingVariableQuery() {
TaskQuery taskQuery = taskService.createTaskQuery().processVariableValueEquals("hello", "world");
saveQuery(taskQuery);
// variables won't overridden variables with same name in different scopes
TaskQuery extendingQuery = taskService.createTaskQuery().taskVariableValueEquals("hello", "world").caseInstanceVariableValueEquals("hello", "world");
Filter extendedFilter = filter.extend(extendingQuery);
TaskQueryImpl extendedQuery = extendedFilter.getQuery();
List<TaskQueryVariableValue> variables = extendedQuery.getVariables();
assertEquals(3, variables.size());
// assert variables (ordering: extending variables are inserted first)
assertEquals("hello", variables.get(0).getName());
assertEquals("world", variables.get(0).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(0).getOperator());
assertFalse(variables.get(0).isProcessInstanceVariable());
assertTrue(variables.get(0).isLocal());
assertEquals("hello", variables.get(1).getName());
assertEquals("world", variables.get(1).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(1).getOperator());
assertFalse(variables.get(1).isProcessInstanceVariable());
assertFalse(variables.get(1).isLocal());
assertEquals("hello", variables.get(2).getName());
assertEquals("world", variables.get(2).getValue());
assertEquals(QueryOperator.EQUALS, variables.get(2).getOperator());
assertTrue(variables.get(2).isProcessInstanceVariable());
assertFalse(variables.get(2).isLocal());
// variables will override variables with same name in same scope
extendingQuery = taskService.createTaskQuery().processVariableValueLessThan("hello", 42).taskVariableValueLessThan("hello", 42).caseInstanceVariableValueLessThan("hello", 42);
extendedFilter = filter.extend(extendingQuery);
extendedQuery = extendedFilter.getQuery();
variables = extendedQuery.getVariables();
assertEquals(3, variables.size());
// assert variables (ordering: extending variables are inserted first)
assertEquals("hello", variables.get(0).getName());
assertEquals(42, variables.get(0).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(0).getOperator());
assertTrue(variables.get(0).isProcessInstanceVariable());
assertFalse(variables.get(0).isLocal());
assertEquals("hello", variables.get(1).getName());
assertEquals(42, variables.get(1).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(1).getOperator());
assertFalse(variables.get(1).isProcessInstanceVariable());
assertTrue(variables.get(1).isLocal());
assertEquals("hello", variables.get(2).getName());
assertEquals(42, variables.get(2).getValue());
assertEquals(QueryOperator.LESS_THAN, variables.get(2).getOperator());
assertFalse(variables.get(2).isProcessInstanceVariable());
assertFalse(variables.get(2).isLocal());
}
Aggregations