TSK-1715: Implemented OwnerNotIn-Filter for TaskQuery.
This commit is contained in:
parent
fe292ea5b5
commit
e564778a91
|
@ -202,6 +202,14 @@ public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {
|
||||||
*/
|
*/
|
||||||
TaskQuery ownerIn(String... owners);
|
TaskQuery ownerIn(String... owners);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter out owners.
|
||||||
|
*
|
||||||
|
* @param owners the owners as String
|
||||||
|
* @return the query
|
||||||
|
*/
|
||||||
|
TaskQuery ownerNotIn(String... owners);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the owner for pattern matching to your query. It will be compared in SQL with the LIKE
|
* Add the owner for pattern matching to your query. It will be compared in SQL with the LIKE
|
||||||
* operator. You may use a wildcard like % to specify the pattern.
|
* operator. You may use a wildcard like % to specify the pattern.
|
||||||
|
|
|
@ -75,6 +75,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
private String[] classificationNameIn;
|
private String[] classificationNameIn;
|
||||||
private String[] classificationNameLike;
|
private String[] classificationNameLike;
|
||||||
private String[] ownerIn;
|
private String[] ownerIn;
|
||||||
|
private String[] ownerNotIn;
|
||||||
private String[] ownerLike;
|
private String[] ownerLike;
|
||||||
private Boolean isRead;
|
private Boolean isRead;
|
||||||
private Boolean isTransferred;
|
private Boolean isTransferred;
|
||||||
|
@ -317,6 +318,12 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TaskQuery ownerNotIn(String... owners) {
|
||||||
|
this.ownerNotIn = owners;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskQuery ownerLike(String... owners) {
|
public TaskQuery ownerLike(String... owners) {
|
||||||
this.ownerLike = toUpperCopy(owners);
|
this.ownerLike = toUpperCopy(owners);
|
||||||
|
@ -992,7 +999,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskSummary> list(int offset, int limit) {
|
public List<TaskSummary> list(int offset, int limit) {
|
||||||
List<TaskSummary> result = new ArrayList<>();
|
List<TaskSummary> result;
|
||||||
try {
|
try {
|
||||||
taskanaEngine.openConnection();
|
taskanaEngine.openConnection();
|
||||||
checkForIllegalParamCombinations();
|
checkForIllegalParamCombinations();
|
||||||
|
@ -1020,7 +1027,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> listValues(TaskQueryColumnName columnName, SortDirection sortDirection) {
|
public List<String> listValues(TaskQueryColumnName columnName, SortDirection sortDirection) {
|
||||||
List<String> result = new ArrayList<>();
|
List<String> result;
|
||||||
try {
|
try {
|
||||||
taskanaEngine.openConnection();
|
taskanaEngine.openConnection();
|
||||||
this.columnName = columnName;
|
this.columnName = columnName;
|
||||||
|
@ -1052,7 +1059,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskSummary single() {
|
public TaskSummary single() {
|
||||||
TaskSummary result = null;
|
TaskSummary result;
|
||||||
try {
|
try {
|
||||||
taskanaEngine.openConnection();
|
taskanaEngine.openConnection();
|
||||||
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
||||||
|
@ -1077,7 +1084,7 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long count() {
|
public long count() {
|
||||||
Long rowCount = null;
|
Long rowCount;
|
||||||
try {
|
try {
|
||||||
taskanaEngine.openConnection();
|
taskanaEngine.openConnection();
|
||||||
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
|
||||||
|
@ -1186,6 +1193,10 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
return ownerIn;
|
return ownerIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String[] getOwnerNotIn() {
|
||||||
|
return ownerNotIn;
|
||||||
|
}
|
||||||
|
|
||||||
public String[] getOwnerLike() {
|
public String[] getOwnerLike() {
|
||||||
return ownerLike;
|
return ownerLike;
|
||||||
}
|
}
|
||||||
|
|
|
@ -321,6 +321,7 @@ public class TaskQuerySqlProvider {
|
||||||
whereIn("classificationNameIn", "c.NAME", sb);
|
whereIn("classificationNameIn", "c.NAME", sb);
|
||||||
whereIn("attachmentClassificationNameIn", "ac.NAME", sb);
|
whereIn("attachmentClassificationNameIn", "ac.NAME", sb);
|
||||||
whereIn("ownerIn", "OWNER", sb);
|
whereIn("ownerIn", "OWNER", sb);
|
||||||
|
whereNotIn("ownerNotIn", "OWNER", sb);
|
||||||
whereIn("porCompanyIn", "POR_COMPANY", sb);
|
whereIn("porCompanyIn", "POR_COMPANY", sb);
|
||||||
whereIn("porSystemIn", "POR_SYSTEM", sb);
|
whereIn("porSystemIn", "POR_SYSTEM", sb);
|
||||||
whereIn("porSystemInstanceIn", "POR_INSTANCE", sb);
|
whereIn("porSystemInstanceIn", "POR_INSTANCE", sb);
|
||||||
|
|
|
@ -80,19 +80,20 @@ class QueryTasksAccTest extends AbstractAccTest {
|
||||||
|
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
@Test
|
@Test
|
||||||
void testQueryForOwnerLike() {
|
void should_ReturnCorrectResults_When_QueryingForOwnerLike() {
|
||||||
|
|
||||||
List<TaskSummary> results =
|
List<TaskSummary> results =
|
||||||
TASK_SERVICE.createTaskQuery().ownerLike("%a%", "%u%").orderByCreated(ASCENDING).list();
|
TASK_SERVICE.createTaskQuery().ownerLike("%a%", "%u%").orderByCreated(ASCENDING).list();
|
||||||
|
|
||||||
assertThat(results).hasSize(39);
|
assertThat(results).hasSize(39).extracting(TaskSummary::getCreated).isSorted();
|
||||||
TaskSummary previousSummary = null;
|
|
||||||
for (TaskSummary taskSummary : results) {
|
|
||||||
if (previousSummary != null) {
|
|
||||||
assertThat(previousSummary.getCreated().isAfter(taskSummary.getCreated())).isFalse();
|
|
||||||
}
|
|
||||||
previousSummary = taskSummary;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_FilterOutOwner_When_OwnerNotInIsSet() {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
TASK_SERVICE.createTaskQuery().ownerNotIn("user-1-1", "user-1-2").list();
|
||||||
|
|
||||||
|
assertThat(results).hasSize(3).extracting(TaskSummary::getOwner).containsOnly("user-b-1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
|
|
Loading…
Reference in New Issue