TSK-1961: Remove AbstractWorkbasketAccessItemQuery and AbstractWorkbasketAccessItemQueryImpl (#2014)

This commit is contained in:
norman-schmidt 2022-09-28 12:57:44 +02:00 committed by GitHub
parent a32569c082
commit 6c6f1b56c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 0 additions and 266 deletions

View File

@ -1,67 +0,0 @@
package pro.taskana.workbasket.api;
import pro.taskana.common.api.BaseQuery;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/**
* AbstractWorkbasketAccessItemQuery for generating dynamic sql.
*
* @param <Q> the actual WorkbasketAccessItemQuery behind this interface class
* @param <T> the workbasket access item
*/
public interface AbstractWorkbasketAccessItemQuery<
Q extends AbstractWorkbasketAccessItemQuery<Q, T>, T extends WorkbasketAccessItem>
extends BaseQuery<T, AccessItemQueryColumnName> {
/**
* Add your unique entry id to your query as filter.
*
* @param ids the unique entry IDs
* @return the query
*/
Q idIn(String... ids);
/**
* Add the {@linkplain Workbasket#getId() id} to your query.
*
* @param workbasketIds the {@linkplain Workbasket#getId() id} of the Workbasket
* @return the query
*/
Q workbasketIdIn(String... workbasketIds);
/**
* Add your accessIds to your query.
*
* @param accessIds as access Ids
* @return the query
*/
Q accessIdIn(String... accessIds);
/**
* Sort the query result by workbasket id.
*
* @param sortDirection Determines whether the result is sorted in ascending or descending order.
* If sortDirection is null, the result is sorted in ascending order
* @return the query
*/
Q orderByWorkbasketId(SortDirection sortDirection);
/**
* Sort the query result by access Id.
*
* @param sortDirection Determines whether the result is sorted in ascending or descending order.
* If sortDirection is null, the result is sorted in ascending order
* @return the query
*/
Q orderByAccessId(SortDirection sortDirection);
/**
* Sort the query result by Id.
*
* @param sortDirection Determines whether the result is sorted in ascending or descending order.
* If sortDirection is null, the result is sorted in ascending order
* @return the query
*/
Q orderById(SortDirection sortDirection);
}

View File

@ -1,199 +0,0 @@
package pro.taskana.workbasket.internal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.ibatis.exceptions.PersistenceException;
import org.apache.ibatis.session.RowBounds;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.workbasket.api.AbstractWorkbasketAccessItemQuery;
import pro.taskana.workbasket.api.AccessItemQueryColumnName;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/**
* AbstractWorkbasketAccessItemQueryImpl for generating dynamic SQL.
*
* @param <Q> the actual WorkbasketAccessItemQuery behind this abstract class
* @param <T> the workbasket access item
*/
// TODO: this class not never used.. remove?
abstract class AbstractWorkbasketAccessItemQueryImpl<
Q extends AbstractWorkbasketAccessItemQuery<Q, T>, T extends WorkbasketAccessItem>
implements AbstractWorkbasketAccessItemQuery<Q, T> {
private static final String LINK_TO_COUNTER =
"pro.taskana.workbasket.internal.WorkbasketQueryMapper.countQueryWorkbasketAccessItems";
private final InternalTaskanaEngine taskanaEngine;
private final List<String> orderBy;
private final List<String> orderColumns;
private AccessItemQueryColumnName columnName;
private String[] accessIdIn;
private String[] workbasketIdIn;
private String[] idIn;
AbstractWorkbasketAccessItemQueryImpl(InternalTaskanaEngine taskanaEngine) {
this.taskanaEngine = taskanaEngine;
orderBy = new ArrayList<>();
orderColumns = new ArrayList<>();
}
@Override
public Q idIn(String... ids) {
this.idIn = ids;
return _this();
}
@Override
public Q workbasketIdIn(String... id) {
this.workbasketIdIn = id;
return _this();
}
@Override
public Q accessIdIn(String... accessId) {
this.accessIdIn = accessId;
WorkbasketQueryImpl.lowercaseAccessIds(this.accessIdIn);
return _this();
}
@Override
public Q orderByWorkbasketId(SortDirection sortDirection) {
return addOrderCriteria("WORKBASKET_ID", sortDirection);
}
@Override
public Q orderByAccessId(SortDirection sortDirection) {
return addOrderCriteria("ACCESS_ID", sortDirection);
}
@Override
public Q orderById(SortDirection sortDirection) {
return addOrderCriteria("ID", sortDirection);
}
@Override
public List<T> list() {
return taskanaEngine.executeInDatabaseConnection(
() -> taskanaEngine.getSqlSession().selectList(getLinkToMapper(), _this()));
}
@Override
public List<T> list(int offset, int limit) {
List<T> result = new ArrayList<>();
try {
taskanaEngine.openConnection();
RowBounds rowBounds = new RowBounds(offset, limit);
List<T> foundAccessItms =
taskanaEngine.getSqlSession().selectList(getLinkToMapper(), _this(), rowBounds);
result.addAll(foundAccessItms);
return result;
} catch (PersistenceException e) {
if (e.getMessage().contains("ERRORCODE=-4470")) {
TaskanaRuntimeException ex =
new SystemException(
"The offset beginning was set over the amount of result-rows.", e.getCause());
ex.setStackTrace(e.getStackTrace());
throw ex;
}
throw e;
} finally {
taskanaEngine.returnConnection();
}
}
@Override
public List<String> listValues(
AccessItemQueryColumnName columnName, SortDirection sortDirection) {
List<String> result = null;
try {
taskanaEngine.openConnection();
this.columnName = columnName;
this.orderBy.clear();
this.addOrderCriteria(columnName.toString(), sortDirection);
result = taskanaEngine.getSqlSession().selectList(getLinkToValueMapper(), _this());
return result;
} finally {
taskanaEngine.returnConnection();
}
}
@Override
public T single() {
T accessItem = null;
try {
taskanaEngine.openConnection();
accessItem = taskanaEngine.getSqlSession().selectOne(getLinkToMapper(), _this());
return accessItem;
} finally {
taskanaEngine.returnConnection();
}
}
@Override
public long count() {
Long rowCount = null;
try {
taskanaEngine.openConnection();
rowCount = taskanaEngine.getSqlSession().selectOne(LINK_TO_COUNTER, _this());
return (rowCount == null) ? 0L : rowCount;
} finally {
taskanaEngine.returnConnection();
}
}
public String[] getIdIn() {
return this.idIn;
}
public String[] getAccessIdIn() {
return accessIdIn;
}
public String[] getWorkbasketIdIn() {
return workbasketIdIn;
}
public List<String> getOrderBy() {
return orderBy;
}
public List<String> getOrderColumns() {
return orderColumns;
}
public AccessItemQueryColumnName getColumnName() {
return columnName;
}
protected Q addOrderCriteria(String colName, SortDirection sortDirection) {
String orderByDirection =
" " + (sortDirection == null ? SortDirection.ASCENDING : sortDirection);
orderBy.add(colName + orderByDirection);
orderColumns.add(colName);
return _this();
}
@SuppressWarnings("checkstyle:MethodName")
abstract Q _this();
abstract String getLinkToMapper();
abstract String getLinkToValueMapper();
@Override
public String toString() {
return "AbstractWorkbasketAccessItemQueryImpl ["
+ "idIn="
+ Arrays.toString(this.idIn)
+ ", accessIdIn="
+ Arrays.toString(this.accessIdIn)
+ ", workbasketIdIn="
+ Arrays.toString(this.workbasketIdIn)
+ ", orderBy="
+ this.orderBy
+ "]";
}
}