TSK-732: Refactored BaseQuery.listValues method to use Enum instead of String

This commit is contained in:
julian.schallenmueller 2018-10-25 17:19:24 +02:00 committed by Holger Hagen
parent ff558b3a2a
commit 93ed287c05
26 changed files with 293 additions and 56 deletions

View File

@ -7,7 +7,7 @@ package pro.taskana;
* @param <T> the workbasket access item
*/
public interface AbstractWorkbasketAccessItemQuery<Q extends AbstractWorkbasketAccessItemQuery<Q, T>, T extends WorkbasketAccessItem>
extends BaseQuery<T> {
extends BaseQuery<T, AccessItemQueryColumnName> {
/**
* Add your unique entry id to your query as filter.

View File

@ -0,0 +1,24 @@
package pro.taskana;
/**
* Enum containing the column names for @see pro.taskana.mappings.QueryMapper#queryWorkbasketAccessItemColumnValues(WorkbasketAccessItemQuery).
*
* @author jsa
*/
public enum AccessItemQueryColumnName implements QueryColumnName {
ID("id"),
WORKBASKET_ID("workbasket_id"),
WORKBASKET_KEY("wb.key"),
ACCESS_ID("access_id");
private String name;
AccessItemQueryColumnName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -8,8 +8,10 @@ import java.util.List;
* @author EH
* @param <T>
* specifies the return type of the follwing methods
* @param <U>
* specifies the type of the enum used
*/
public interface BaseQuery<T> {
public interface BaseQuery<T, U extends Enum<U> & QueryColumnName> {
/**
* This method will return a list of defined {@link T} objects. In case of a TaskQuery, this method can throw a
@ -44,7 +46,7 @@ public interface BaseQuery<T> {
* the result is sorted in ascending order
* @return a list of all existing values.
*/
List<String> listValues(String dbColumnName, SortDirection sortDirection);
List<String> listValues(U dbColumnName, SortDirection sortDirection);
/**
* This method will return all results for page X with a size of Y of the current query.<br>

View File

@ -5,7 +5,7 @@ import pro.taskana.exceptions.InvalidArgumentException;
/**
* ClassificationQuery for generating dynamic sql.
*/
public interface ClassificationQuery extends BaseQuery<ClassificationSummary> {
public interface ClassificationQuery extends BaseQuery<ClassificationSummary, ClassificationQueryColumnName> {
/**
* Add your key to your query.
@ -299,4 +299,5 @@ public interface ClassificationQuery extends BaseQuery<ClassificationSummary> {
* when the number of the custom is incorrect.
*/
ClassificationQuery orderByCustomAttribute(String num, SortDirection sortDirection) throws InvalidArgumentException;
}

View File

@ -0,0 +1,42 @@
package pro.taskana;
/**
* Enum containing the column names for @see pro.taskana.mappings.QueryMapper#queryClassificationColumnValues(pro.taskana.impl.ClassificationQueryImpl).
*
* @author jsa
*/
public enum ClassificationQueryColumnName implements QueryColumnName {
ID("id"),
KEY("key"),
PARENT_ID("parent_id"),
PARENT_KEY("parent_key"),
CATEGORY("category"),
TYPE("type"),
DOMAIN("domain"),
VALID_IN_DOMAIN("valid_in_domain"),
CREATED("created"),
MODIFIED("modified"),
NAME("name"),
DESCRIPTION("description"),
PRIORITY("priority"),
SERVICELEVEL("serviceLevel"),
APPLICATION_ENTRY_POINT("application_entry_point"),
CUSTOM_1("custom_1"),
CUSTOM_2("custom_2"),
CUSTOM_3("custom_3"),
CUSTOM_4("custom_4"),
CUSTOM_5("custom_5"),
CUSTOM_6("custom_6"),
CUSTOM_7("custom_7"),
CUSTOM_8("custom_8");
private String name;
ClassificationQueryColumnName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -3,7 +3,7 @@ package pro.taskana;
/**
* ObjectReferenceQuery for generating dynamic sql.
*/
public interface ObjectReferenceQuery extends BaseQuery<ObjectReference> {
public interface ObjectReferenceQuery extends BaseQuery<ObjectReference, ObjectReferenceQueryColumnName> {
/**
* Add your company to your query.

View File

@ -0,0 +1,26 @@
package pro.taskana;
/**
* Enum containing the column names for @see {@link pro.taskana.mappings.QueryMapper#queryObjectReferenceColumnValues(pro.taskana.impl.ObjectReferenceQueryImpl)}.
*
* @author jsa
*/
public enum ObjectReferenceQueryColumnName implements QueryColumnName {
ID("id"),
COMPANY("company"),
SYSTEM("system"),
SYSTEM_INSTANCE("system_instance"),
TYPE("type"),
VALUE("value");
private String name;
ObjectReferenceQueryColumnName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -0,0 +1,9 @@
package pro.taskana;
/**
* This interface ist used to emulate an extensible enum for use in the Basequery interface.
*
* @author jsa
*/
public interface QueryColumnName {
}

View File

@ -5,7 +5,7 @@ import pro.taskana.exceptions.InvalidArgumentException;
/**
* TaskQuery for generating dynamic sql.
*/
public interface TaskQuery extends BaseQuery<TaskSummary> {
public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {
/**
* Add your names to your query.

View File

@ -0,0 +1,70 @@
package pro.taskana;
/**
* Enum containing the column names for @see pro.taskana.mappings.QueryMapper#queryTaskColumnValues(pro.taskana.impl.TaskQueryImpl).
*
* @author jsa
*/
public enum TaskQueryColumnName implements QueryColumnName {
ID("t.id"),
CREATED("t.created"),
CLAIMED("t.claimed"),
COMPLETED("t.completed"),
MODIFIED("t.modified"),
PLANNED("t.planned"),
DUE("t.due"),
NAME("t.name"),
CREATOR("t.creator"),
DESCRIPTION("t.description"),
NOTE("t.note"),
PRIORITY("t.priority"),
STATE("t.state"),
CLASSIFICATION_CATEGORY("t.classification_category"),
CLASSIFICATION_KEY("t.classification_key"),
CLASSIFICATION_ID("t.classification_id"),
WORKBASKET_ID("t.workbasket_id"),
WORKBASKET_KEY("t.workbasket_key"),
DOMAIN("t.domain"),
BUSINESS_PROCESS_ID("t.business_process_id"),
PARENT_BUSINESS_PROCESS_ID("t.parent_business_process_id"),
OWNER("t.owner"),
POR_COMPANY("t.por_company"),
POR_SYSTEM("t.por_system"),
POR_INSTANCE("t.por_instance"),
POR_TYPE("t.por_type"),
POR_VALUE("t.por_value"),
IS_READ("t.is_read"),
IS_TRANSFERRED("t.is_transferred"),
CALLBACK_INFO("t.callback_info"),
CUSTOM_ATTRIBUTES("t.custom_attributes"),
CUSTOM_1("t.custom_1"),
CUSTOM_2("t.custom_2"),
CUSTOM_3("t.custom_3"),
CUSTOM_4("t.custom_4"),
CUSTOM_5("t.custom_5"),
CUSTOM_6("t.custom_6"),
CUSTOM_7("t.custom_7"),
CUSTOM_8("t.custom_8"),
CUSTOM_9("t.custom_9"),
CUSTOM_10("t.custom_10"),
CUSTOM_11("t.custom_11"),
CUSTOM_12("t.custom_12"),
CUSTOM_13("t.custom_13"),
CUSTOM_14("t.custom_14"),
CUSTOM_15("t.custom_15"),
CUSTOM_16("t.custom_16"),
ACLASSIFICATION_KEY("a.classification_key"),
ACLASSIFICATION_ID("a.classification_id"),
CHANNEL("a.channel"),
REF_VALUE("a.ref_value");
private String name;
TaskQueryColumnName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -3,7 +3,7 @@ package pro.taskana;
/**
* WorkbasketAccessItemQuery for generating dynamic SQL.
*/
public interface WorkbasketAccessItemQuery extends BaseQuery<WorkbasketAccessItem> {
public interface WorkbasketAccessItemQuery extends BaseQuery<WorkbasketAccessItem, AccessItemQueryColumnName> {
/**
* Add your unique entry id to your query as filter.
@ -102,4 +102,5 @@ public interface WorkbasketAccessItemQuery extends BaseQuery<WorkbasketAccessIte
* @return the query
*/
WorkbasketAccessItemQuery orderById(SortDirection sortDirection);
}

View File

@ -6,7 +6,7 @@ import pro.taskana.exceptions.NotAuthorizedException;
/**
* WorkitemQuery for generating dynamic sql.
*/
public interface WorkbasketQuery extends BaseQuery<WorkbasketSummary> {
public interface WorkbasketQuery extends BaseQuery<WorkbasketSummary, WorkbasketQueryColumnName> {
/**
* Add your ids to your query. The ids are compared to the ids of workbaskets with the IN operator.

View File

@ -0,0 +1,34 @@
package pro.taskana;
/**
* Enum containing the column names for @see {@link pro.taskana.mappings.QueryMapper#queryWorkbasketColumnValues(pro.taskana.impl.WorkbasketQueryImpl)}.
*
* @author jsa
*/
public enum WorkbasketQueryColumnName implements QueryColumnName {
OWNER("w.owner"),
ID("w.id"),
KEY("w.key"),
NAME("w.name"),
DOMAIN("w.domain"),
TYPE("w.type"),
CUSTOM_1("w.custom_1"),
CUSTOM_2("w.custom_2"),
CUSTOM_3("w.custom_3"),
CUSTOM_4("w.custom_4"),
ORG_LEVEL_1("w.org_level_1"),
ORG_LEVEL_2("w.org_level_2"),
ORG_LEVEL_3("w.org_level_3"),
ORG_LEVEL_4("w.org_level_4");
private String name;
WorkbasketQueryColumnName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -10,6 +10,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.AbstractWorkbasketAccessItemQuery;
import pro.taskana.AccessItemQueryColumnName;
import pro.taskana.TaskanaEngine;
import pro.taskana.WorkbasketAccessItem;
import pro.taskana.exceptions.TaskanaRuntimeException;
@ -27,7 +28,7 @@ abstract class AbstractWorkbasketAccessItemQueryImpl<Q extends AbstractWorkbaske
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryWorkbasketAccessItems";
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractWorkbasketAccessItemQueryImpl.class);
private String columnName;
private AccessItemQueryColumnName columnName;
private String[] accessIdIn;
private String[] workbasketIdIn;
private String[] idIn;
@ -103,14 +104,14 @@ abstract class AbstractWorkbasketAccessItemQueryImpl<Q extends AbstractWorkbaske
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(AccessItemQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, _this());
List<String> result = null;
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName, sortDirection);
this.addOrderCriteria(columnName.toString(), sortDirection);
result = taskanaEngine.getSqlSession().selectList(getLinkToValueMapper(), _this());
return result;
} finally {
@ -207,7 +208,7 @@ abstract class AbstractWorkbasketAccessItemQueryImpl<Q extends AbstractWorkbaske
return orderColumns;
}
public String getColumnName() {
public AccessItemQueryColumnName getColumnName() {
return columnName;
}

View File

@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.ClassificationQuery;
import pro.taskana.ClassificationSummary;
import pro.taskana.ClassificationQueryColumnName;
import pro.taskana.TaskanaEngine;
import pro.taskana.TimeInterval;
import pro.taskana.exceptions.InvalidArgumentException;
@ -29,7 +30,7 @@ public class ClassificationQueryImpl implements ClassificationQuery {
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryClassificationColumnValues";
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationQueryImpl.class);
private TaskanaEngineImpl taskanaEngine;
private String columnName;
private ClassificationQueryColumnName columnName;
private String[] key;
private String[] idIn;
private String[] parentId;
@ -414,14 +415,14 @@ public class ClassificationQueryImpl implements ClassificationQuery {
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(ClassificationQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this);
List<String> result = new ArrayList<>();
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName, sortDirection);
this.addOrderCriteria(columnName.toString(), sortDirection);
result = taskanaEngine.getSqlSession().selectList(LINK_TO_VALUEMAPPER, this);
return result;
} finally {
@ -464,8 +465,8 @@ public class ClassificationQueryImpl implements ClassificationQuery {
private ClassificationQuery addOrderCriteria(String columnName, SortDirection sortDirection) {
String orderByDirection = " " + (sortDirection == null ? SortDirection.ASCENDING : sortDirection);
orderBy.add(columnName + orderByDirection);
orderColumns.add(columnName);
orderBy.add(columnName.toString() + orderByDirection);
orderColumns.add(columnName.toString());
return this;
}
@ -605,7 +606,7 @@ public class ClassificationQueryImpl implements ClassificationQuery {
return custom8Like;
}
public String getColumnName() {
public ClassificationQueryColumnName getColumnName() {
return columnName;
}

View File

@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.ObjectReference;
import pro.taskana.ObjectReferenceQuery;
import pro.taskana.ObjectReferenceQueryColumnName;
import pro.taskana.TaskanaEngine;
import pro.taskana.exceptions.TaskanaRuntimeException;
import pro.taskana.impl.util.LoggerUtils;
@ -27,7 +28,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryObjectReferenceColumnValues";
private static final Logger LOGGER = LoggerFactory.getLogger(ObjectReferenceQueryImpl.class);
private TaskanaEngineImpl taskanaEngine;
private String columnName;
private ObjectReferenceQueryColumnName columnName;
private String[] company;
private String[] system;
private String[] systemInstance;
@ -89,14 +90,14 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(ObjectReferenceQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this);
List<String> result = new ArrayList<>();
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName, sortDirection);
this.addOrderCriteria(columnName.toString(), sortDirection);
result = taskanaEngine.getSqlSession().selectList(LINK_TO_VALUEMAPPER, this);
return result;
} finally {
@ -192,7 +193,7 @@ public class ObjectReferenceQueryImpl implements ObjectReferenceQuery {
this.value = value;
}
public String getColumnName() {
public ObjectReferenceQueryColumnName getColumnName() {
return columnName;
}

View File

@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.KeyDomain;
import pro.taskana.ObjectReferenceQuery;
import pro.taskana.TaskQuery;
import pro.taskana.TaskQueryColumnName;
import pro.taskana.TaskState;
import pro.taskana.TaskSummary;
import pro.taskana.TaskanaEngine;
@ -42,7 +43,7 @@ public class TaskQueryImpl implements TaskQuery {
private static final Logger LOGGER = LoggerFactory.getLogger(TaskQueryImpl.class);
private TaskanaEngineImpl taskanaEngine;
private TaskServiceImpl taskService;
private String columnName;
private TaskQueryColumnName columnName;
private String[] nameIn;
private String[] nameLike;
private String[] creatorIn;
@ -908,14 +909,14 @@ public class TaskQueryImpl implements TaskQuery {
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(TaskQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this);
List<String> result = new ArrayList<>();
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName, sortDirection);
this.addOrderCriteria(columnName.toString(), sortDirection);
checkOpenAndReadPermissionForSpecifiedWorkbaskets();
setupAccessIds();
result = taskanaEngine.getSqlSession().selectList(LINK_TO_VALUEMAPPER, this);
@ -1372,7 +1373,7 @@ public class TaskQueryImpl implements TaskQuery {
return workbasketIdIn;
}
public String getColumnName() {
public TaskQueryColumnName getColumnName() {
return columnName;
}
@ -1451,7 +1452,7 @@ public class TaskQueryImpl implements TaskQuery {
private TaskQuery addOrderCriteria(String columnName, SortDirection sortDirection) {
String orderByDirection = " " + (sortDirection == null ? SortDirection.ASCENDING : sortDirection);
orderBy.add(columnName + orderByDirection);
orderColumns.add(columnName);
orderColumns.add(columnName.toString());
return this;
}

View File

@ -9,6 +9,7 @@ import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.AccessItemQueryColumnName;
import pro.taskana.TaskanaEngine;
import pro.taskana.WorkbasketAccessItem;
import pro.taskana.WorkbasketAccessItemQuery;
@ -24,7 +25,7 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryWorkbasketAccessItems";
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryWorkbasketAccessItemColumnValues";
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketQueryImpl.class);
private String columnName;
private AccessItemQueryColumnName columnName;
private String[] accessIdIn;
private String[] accessIdLike;
private String[] workbasketIdIn;
@ -120,14 +121,14 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(AccessItemQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this);
List<String> result = null;
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName, sortDirection);
this.addOrderCriteria(columnName.toString(), sortDirection);
result = taskanaEngine.getSqlSession().selectList(LINK_TO_VALUEMAPPER, this);
return result;
} finally {
@ -228,7 +229,7 @@ public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery
return orderColumns;
}
public String getColumnName() {
public AccessItemQueryColumnName getColumnName() {
return columnName;
}

View File

@ -14,6 +14,7 @@ import pro.taskana.TaskanaRole;
import pro.taskana.TimeInterval;
import pro.taskana.WorkbasketPermission;
import pro.taskana.WorkbasketQuery;
import pro.taskana.WorkbasketQueryColumnName;
import pro.taskana.WorkbasketSummary;
import pro.taskana.WorkbasketType;
import pro.taskana.configuration.TaskanaEngineConfiguration;
@ -34,7 +35,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryWorkbaskets";
private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryWorkbasketColumnValues";
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketQueryImpl.class);
private String columnName;
private WorkbasketQueryColumnName columnName;
private String[] accessId;
private String[] idIn;
private WorkbasketPermission permission;
@ -395,8 +396,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
}
}
@Override
public List<String> listValues(String columnName, SortDirection sortDirection) {
public List<String> listValues(WorkbasketQueryColumnName columnName, SortDirection sortDirection) {
LOGGER.debug("Entry to listValues(dbColumnName={}) this = {}", columnName, this);
List<String> result = new ArrayList<>();
try {
@ -614,7 +614,7 @@ public class WorkbasketQueryImpl implements WorkbasketQuery {
return orderColumns;
}
public String getColumnName() {
public WorkbasketQueryColumnName getColumnName() {
return columnName;
}

View File

@ -10,6 +10,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.BaseQuery;
import pro.taskana.BulkOperationResults;
import pro.taskana.TaskanaEngine;
import pro.taskana.WorkbasketQueryColumnName;
import pro.taskana.exceptions.InvalidArgumentException;
import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskanaException;
@ -64,7 +65,7 @@ public class WorkbasketCleanupJob extends AbstractTaskanaJob {
List<String> workbasketList = taskanaEngineImpl.getWorkbasketService()
.createWorkbasketQuery()
.markedForDeletion(true)
.listValues("ID", BaseQuery.SortDirection.ASCENDING);
.listValues(WorkbasketQueryColumnName.ID, BaseQuery.SortDirection.ASCENDING);
return workbasketList;
}

View File

@ -3,6 +3,11 @@ package acceptance.classification;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static pro.taskana.ClassificationQueryColumnName.NAME;
import static pro.taskana.ClassificationQueryColumnName.TYPE;
import static pro.taskana.ClassificationQueryColumnName.CREATED;
import static pro.taskana.ClassificationQueryColumnName.VALID_IN_DOMAIN;
import java.time.Instant;
import java.util.List;
import java.util.stream.Collectors;
@ -39,30 +44,30 @@ public class QueryClassificationAccTest extends AbstractAccTest {
public void testQueryClassificationValuesForColumnName() {
ClassificationService classificationService = taskanaEngine.getClassificationService();
List<String> columnValueList = classificationService.createClassificationQuery()
.listValues("NAME", null);
.listValues(NAME, null);
assertNotNull(columnValueList);
assertEquals(16, columnValueList.size());
columnValueList = classificationService.createClassificationQuery()
.listValues("TYPE", null);
.listValues(TYPE, null);
assertNotNull(columnValueList);
assertEquals(2, columnValueList.size());
columnValueList = classificationService.createClassificationQuery()
.domainIn("")
.listValues("TYPE", null);
.listValues(TYPE, null);
assertNotNull(columnValueList);
assertEquals(2, columnValueList.size());
columnValueList = classificationService.createClassificationQuery()
.domainIn("")
.listValues("CREATED", null);
.listValues(CREATED, null);
assertNotNull(columnValueList);
columnValueList = classificationService.createClassificationQuery()
.domainIn("")
.validInDomainEquals(false)
.listValues("VALID_IN_DOMAIN", null);
.listValues(VALID_IN_DOMAIN, null);
assertNotNull(columnValueList);
assertEquals(1, columnValueList.size()); // all are false in ""
}

View File

@ -3,6 +3,9 @@ package acceptance.objectreference;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static pro.taskana.ObjectReferenceQueryColumnName.COMPANY;
import static pro.taskana.ObjectReferenceQueryColumnName.SYSTEM;
import java.util.List;
import org.junit.Test;
@ -24,16 +27,16 @@ public class QueryObjectReferenceAccTest extends AbstractAccTest {
public void testQueryObjectReferenceValuesForColumnName() {
TaskQuery taskQuery = taskanaEngine.getTaskService().createTaskQuery();
List<String> columnValues = taskQuery.createObjectReferenceQuery()
.listValues("COMPANY", null);
.listValues(COMPANY, null);
assertEquals(3, columnValues.size());
columnValues = taskQuery.createObjectReferenceQuery()
.listValues("SYSTEM", null);
.listValues(SYSTEM, null);
assertEquals(3, columnValues.size());
columnValues = taskQuery.createObjectReferenceQuery()
.systemIn("System1")
.listValues("SYSTEM", null);
.listValues(SYSTEM, null);
assertEquals(1, columnValues.size());
}

View File

@ -6,6 +6,13 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static pro.taskana.TaskQueryColumnName.OWNER;
import static pro.taskana.TaskQueryColumnName.STATE;
import static pro.taskana.TaskQueryColumnName.CHANNEL;
import static pro.taskana.TaskQueryColumnName.REF_VALUE;
import static pro.taskana.TaskQueryColumnName.ACLASSIFICATION_ID;
import static pro.taskana.TaskQueryColumnName.CLASSIFICATION_KEY;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -61,12 +68,12 @@ public class QueryTasksAccTest extends AbstractAccTest {
List<String> columnValueList = taskService.createTaskQuery()
.ownerLike("%user%")
.orderByOwner(desc)
.listValues("OWNER", null);
.listValues(OWNER, null);
assertNotNull(columnValueList);
assertEquals(3, columnValueList.size());
columnValueList = taskService.createTaskQuery()
.listValues("STATE", null);
.listValues(STATE, null);
assertNotNull(columnValueList);
assertEquals(3, columnValueList.size());
}
@ -79,25 +86,25 @@ public class QueryTasksAccTest extends AbstractAccTest {
TaskService taskService = taskanaEngine.getTaskService();
List<String> columnValueList = taskService.createTaskQuery()
.attachmentReferenceValueIn("val4")
.listValues("CHANNEL", null);
.listValues(CHANNEL, null);
assertNotNull(columnValueList);
assertEquals(2, columnValueList.size());
columnValueList = taskService.createTaskQuery()
.attachmentReferenceValueLike("%")
.listValues("REF_VALUE", null);
.listValues(REF_VALUE, null);
assertNotNull(columnValueList);
assertEquals(6, columnValueList.size());
columnValueList = taskService.createTaskQuery()
.orderByAttachmentClassificationId(desc)
.listValues("a.CLASSIFICATION_ID", null);
.listValues(ACLASSIFICATION_ID, null);
assertNotNull(columnValueList);
assertEquals(12, columnValueList.size());
columnValueList = taskService.createTaskQuery()
.orderByClassificationKey(desc)
.listValues("t.CLASSIFICATION_KEY", null);
.listValues(CLASSIFICATION_KEY, null);
assertNotNull(columnValueList);
assertEquals(7, columnValueList.size());
}

View File

@ -4,6 +4,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static pro.taskana.WorkbasketQueryColumnName.NAME;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -94,14 +96,14 @@ public class QueryWorkbasketAccTest extends AbstractAccTest {
public void testQueryWorkbasketValuesForColumnName() {
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
List<String> columnValueList = workbasketService.createWorkbasketQuery()
.listValues("NAME", null);
.listValues(NAME, null);
assertNotNull(columnValueList);
assertEquals(10, columnValueList.size());
columnValueList = workbasketService.createWorkbasketQuery()
.nameLike("%korb%")
.orderByName(asc)
.listValues("NAME", SortDirection.DESCENDING); // will override
.listValues(NAME, SortDirection.DESCENDING); // will override
assertNotNull(columnValueList);
assertEquals(4, columnValueList.size());
}

View File

@ -5,6 +5,10 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static pro.taskana.AccessItemQueryColumnName.WORKBASKET_ID;
import static pro.taskana.AccessItemQueryColumnName.ACCESS_ID;
import static pro.taskana.AccessItemQueryColumnName.WORKBASKET_KEY;
import java.util.Arrays;
import java.util.List;
@ -38,17 +42,17 @@ public class QueryWorkbasketAccessItemsAccTest extends AbstractAccTest {
public void testQueryWorkbasketAccessItemValuesForColumnName() throws NotAuthorizedException {
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
List<String> columnValueList = workbasketService.createWorkbasketAccessItemQuery()
.listValues("WORKBASKET_ID", null);
.listValues(WORKBASKET_ID, null);
assertNotNull(columnValueList);
assertEquals(24, columnValueList.size());
columnValueList = workbasketService.createWorkbasketAccessItemQuery()
.listValues("ACCESS_ID", null);
.listValues(ACCESS_ID, null);
assertNotNull(columnValueList);
assertEquals(9, columnValueList.size());
columnValueList = workbasketService.createWorkbasketAccessItemQuery()
.listValues("WB.KEY", null);
.listValues(WORKBASKET_KEY, null);
assertNotNull(columnValueList);
assertEquals(24, columnValueList.size());

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import pro.taskana.ClassificationQuery;
import pro.taskana.ClassificationQueryColumnName;
import pro.taskana.ClassificationSummary;
import pro.taskana.TimeInterval;
@ -196,7 +197,7 @@ public class TestClassificationQuery implements ClassificationQuery {
}
@Override
public List<String> listValues(String dbColumnName, SortDirection sortDirection) {
public List<String> listValues(ClassificationQueryColumnName dbColumnName, SortDirection sortDirection) {
return new ArrayList<>();
}