TSK-732: Refactored BaseQuery.listValues method to use Enum instead of String
This commit is contained in:
parent
ff558b3a2a
commit
93ed287c05
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 {
|
||||
}
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 ""
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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<>();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue