TSK-1094 introduce models package for */api and */internal

This commit is contained in:
Jörg Heffner 2020-02-13 12:54:46 +01:00
parent 4c884819d5
commit 5c7d38451c
208 changed files with 609 additions and 572 deletions

View File

@ -11,10 +11,10 @@ import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.InvalidOwnerException;
import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
/** Example Bootstrap Application. */

View File

@ -7,10 +7,10 @@ import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;

View File

@ -11,24 +11,24 @@ import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.InvalidOwnerException;
import pro.taskana.common.api.exceptions.InvalidStateException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.WorkbasketType;
import pro.taskana.workbasket.api.exceptions.InvalidWorkbasketException;
import pro.taskana.workbasket.api.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
/** TODO. */
@Path("/test")

View File

@ -29,11 +29,11 @@ import org.slf4j.LoggerFactory;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.SystemException;
import pro.taskana.common.internal.TaskanaEngineImpl;
import pro.taskana.common.internal.configuration.DB;
import pro.taskana.common.internal.configuration.DbSchemaCreator;
import pro.taskana.task.api.TaskanaRole;
/**
* This central class creates the TaskanaEngine and holds all the information about DB and Security.

View File

@ -1,5 +1,6 @@
package pro.taskana.classification.api;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.BaseQuery;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;

View File

@ -3,6 +3,7 @@ package pro.taskana.classification.api;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationInUseException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;

View File

@ -1,6 +1,6 @@
package pro.taskana.classification.api.exceptions;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.TaskanaException;
/** Thrown, when a classification does already exits, but wanted to create with same ID+domain. */

View File

@ -1,4 +1,4 @@
package pro.taskana.classification.api;
package pro.taskana.classification.api.models;
import java.time.Instant;

View File

@ -1,4 +1,4 @@
package pro.taskana.classification.api;
package pro.taskana.classification.api.models;
/**
* Interface for ClassificationSummaries. This is a specific short model-object which only requieres

View File

@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import pro.taskana.classification.internal.models.ClassificationImpl;
/** This class is the mybatis mapping of classifications. */
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})
public interface ClassificationMapper {

View File

@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.classification.api.ClassificationQuery;
import pro.taskana.classification.api.ClassificationQueryColumnName;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;

View File

@ -5,6 +5,8 @@ import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
/** This class provides a mapper for all classification queries. */
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})
public interface ClassificationQueryMapper {

View File

@ -13,14 +13,16 @@ import org.apache.ibatis.exceptions.PersistenceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationQuery;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationInUseException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.classification.internal.models.ClassificationImpl;
import pro.taskana.common.api.ScheduledJob;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
@ -28,8 +30,7 @@ import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.common.internal.jobs.ClassificationChangedJob;
import pro.taskana.common.internal.util.IdGenerator;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.task.internal.TaskMapper;
/** This is the implementation of ClassificationService. */

View File

@ -1,10 +1,10 @@
package pro.taskana.classification.internal;
package pro.taskana.classification.internal.models;
import java.time.Instant;
import java.util.Objects;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.api.models.ClassificationSummary;
/** Classification entity. */
public class ClassificationImpl extends ClassificationSummaryImpl implements Classification {
@ -17,7 +17,7 @@ public class ClassificationImpl extends ClassificationSummaryImpl implements Cla
public ClassificationImpl() {}
ClassificationImpl(ClassificationImpl classification) {
public ClassificationImpl(ClassificationImpl classification) {
this.id = classification.getId();
this.key = classification.getKey();
this.parentId = classification.getParentId();

View File

@ -1,8 +1,8 @@
package pro.taskana.classification.internal;
package pro.taskana.classification.internal.models;
import java.util.Objects;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
/** Implementation for the short summaries of a classification entity. */
public class ClassificationSummaryImpl implements ClassificationSummary {

View File

@ -7,7 +7,6 @@ import pro.taskana.classification.api.ClassificationService;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.monitor.api.MonitorService;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.workbasket.api.WorkbasketService;
/** The TaskanaEngine represents an overall set of all needed services. */

View File

@ -1,4 +1,4 @@
package pro.taskana.task.api;
package pro.taskana.common.api;
import java.util.Arrays;
import java.util.List;

View File

@ -34,6 +34,7 @@ import pro.taskana.classification.internal.ClassificationServiceImpl;
import pro.taskana.common.api.JobService;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.AutocommitFailedException;
import pro.taskana.common.api.exceptions.ConnectionNotSetException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
@ -49,7 +50,6 @@ import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.MonitorServiceImpl;
import pro.taskana.spi.history.internal.HistoryEventProducer;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.task.internal.AttachmentMapper;
import pro.taskana.task.internal.ObjectReferenceMapper;
import pro.taskana.task.internal.TaskMapper;

View File

@ -19,7 +19,7 @@ import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.common.internal.transaction.TaskanaTransactionProvider;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.models.TaskSummary;
/** Job to cleanup completed tasks after a period of time. */
public class TaskCleanupJob extends AbstractTaskanaJob {

View File

@ -82,35 +82,6 @@ public final class DaysToWorkingDaysConverter {
.orElse(0);
}
/**
* Computes the date of Easter Sunday for a given year.
*
* @param year for which the date of Easter Sunday should be calculated
* @return the date of Easter Sunday for the given year
*/
static LocalDate getEasterSunday(int year) {
// Formula to compute Easter Sunday by Gauss.
int a = year % 19;
int b = year % 4;
int c = year % 7;
int k = year / 100;
int p = (13 + 8 * k) / 25;
int q = k / 4;
int m = (15 - p + k - q) % 30;
int n = (4 + k - q) % 7;
int d = (19 * a + m) % 30;
int e = (2 * b + 4 * c + 6 * d + n) % 7;
if (d == 29 && e == 6) {
return LocalDate.of(year, 3, 15).plusDays(d + e);
}
if (d == 28 && e == 6 && (11 * m + 11) % 30 < 19) {
return LocalDate.of(year, 3, 15).plusDays(d + e);
}
return LocalDate.of(year, 3, 22).plusDays(d + e);
}
public boolean isWorkingDay(long day, Instant referenceDate) {
LocalDateTime dateToCheck =
LocalDateTime.ofInstant(referenceDate, ZoneId.systemDefault()).plusDays(day);
@ -150,6 +121,35 @@ public final class DaysToWorkingDaysConverter {
.anyMatch(diff -> diff == diffFromEasterSunday);
}
/**
* Computes the date of Easter Sunday for a given year.
*
* @param year for which the date of Easter Sunday should be calculated
* @return the date of Easter Sunday for the given year
*/
static LocalDate getEasterSunday(int year) {
// Formula to compute Easter Sunday by Gauss.
int a = year % 19;
int b = year % 4;
int c = year % 7;
int k = year / 100;
int p = (13 + 8 * k) / 25;
int q = k / 4;
int m = (15 - p + k - q) % 30;
int n = (4 + k - q) % 7;
int d = (19 * a + m) % 30;
int e = (2 * b + 4 * c + 6 * d + n) % 7;
if (d == 29 && e == 6) {
return LocalDate.of(year, 3, 15).plusDays(d + e);
}
if (d == 28 && e == 6 && (11 * m + 11) % 30 < 19) {
return LocalDate.of(year, 3, 15).plusDays(d + e);
}
return LocalDate.of(year, 3, 22).plusDays(d + e);
}
@Override
public String toString() {
return "DaysToWorkingDaysConverter{"

View File

@ -8,7 +8,6 @@ import pro.taskana.monitor.api.reports.CustomFieldValueReport;
import pro.taskana.monitor.api.reports.TaskStatusReport;
import pro.taskana.monitor.api.reports.TimestampReport;
import pro.taskana.monitor.api.reports.WorkbasketReport;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.reports.CategoryReportBuilderImpl;
import pro.taskana.monitor.internal.reports.ClassificationReportBuilderImpl;
import pro.taskana.monitor.internal.reports.CustomFieldValueReportBuilderImpl;
@ -23,8 +22,7 @@ public class MonitorServiceImpl implements MonitorService {
private InternalTaskanaEngine taskanaEngine;
private MonitorMapper monitorMapper;
public MonitorServiceImpl(
InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
public MonitorServiceImpl(InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
super();
this.taskanaEngine = taskanaEngine;
this.monitorMapper = monitorMapper;

View File

@ -77,36 +77,6 @@ public class DaysToWorkingDaysReportConverter {
return new DaysToWorkingDaysReportConverter(columnHeaders, daysToWorkingDaysConverter);
}
protected List<Integer> generateNegativeDaysToWorkingDays(
List<? extends TimeIntervalColumnHeader> columnHeaders, Instant referenceDate) {
int minUpperLimit = TimeIntervalColumnHeader.getSmallestUpperLimit(columnHeaders);
List<Integer> daysToWorkingDays = new ArrayList<>();
daysToWorkingDays.add(0);
int day = -1;
int workingDay = 0;
while (workingDay > minUpperLimit) {
workingDay -= (daysToWorkingDaysConverter.isWorkingDay(day--, referenceDate)) ? 1 : 0;
daysToWorkingDays.add(workingDay);
}
return daysToWorkingDays;
}
protected List<Integer> generatePositiveDaysToWorkingDays(
List<? extends TimeIntervalColumnHeader> columnHeaders, Instant referenceDate) {
int maxLowerLimit = TimeIntervalColumnHeader.getLargestLowerLimit(columnHeaders);
ArrayList<Integer> daysToWorkingDays = new ArrayList<>();
daysToWorkingDays.add(0);
int day = 1;
int workingDay = 0;
while (workingDay < maxLowerLimit) {
workingDay += (daysToWorkingDaysConverter.isWorkingDay(day++, referenceDate)) ? 1 : 0;
daysToWorkingDays.add(workingDay);
}
return daysToWorkingDays;
}
/**
* Converts an integer, that represents the age in days, to the age in working days by using the
* table that was created by initialization. If the age in days is beyond the limits of the table,
@ -184,6 +154,36 @@ public class DaysToWorkingDaysReportConverter {
return list;
}
protected List<Integer> generateNegativeDaysToWorkingDays(
List<? extends TimeIntervalColumnHeader> columnHeaders, Instant referenceDate) {
int minUpperLimit = TimeIntervalColumnHeader.getSmallestUpperLimit(columnHeaders);
List<Integer> daysToWorkingDays = new ArrayList<>();
daysToWorkingDays.add(0);
int day = -1;
int workingDay = 0;
while (workingDay > minUpperLimit) {
workingDay -= (daysToWorkingDaysConverter.isWorkingDay(day--, referenceDate)) ? 1 : 0;
daysToWorkingDays.add(workingDay);
}
return daysToWorkingDays;
}
protected List<Integer> generatePositiveDaysToWorkingDays(
List<? extends TimeIntervalColumnHeader> columnHeaders, Instant referenceDate) {
int maxLowerLimit = TimeIntervalColumnHeader.getLargestLowerLimit(columnHeaders);
ArrayList<Integer> daysToWorkingDays = new ArrayList<>();
daysToWorkingDays.add(0);
int day = 1;
int workingDay = 0;
while (workingDay < maxLowerLimit) {
workingDay += (daysToWorkingDaysConverter.isWorkingDay(day++, referenceDate)) ? 1 : 0;
daysToWorkingDays.add(workingDay);
}
return daysToWorkingDays;
}
@Override
public String toString() {
return "DaysToWorkingDaysReportConverter [positiveDaysToWorkingDays="

View File

@ -4,6 +4,7 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -13,7 +14,6 @@ import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
import pro.taskana.task.api.TaskanaRole;
/** The implementation of CategoryReportBuilder. */
public class CategoryReportBuilderImpl

View File

@ -4,6 +4,7 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -15,12 +16,10 @@ import pro.taskana.monitor.api.reports.item.DetailedMonitorQueryItem;
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
import pro.taskana.task.api.TaskanaRole;
/** The implementation of ClassificationReportBuilder. */
public class ClassificationReportBuilderImpl
extends TimeIntervalReportBuilderImpl<
Builder, MonitorQueryItem, TimeIntervalColumnHeader>
extends TimeIntervalReportBuilderImpl<Builder, MonitorQueryItem, TimeIntervalColumnHeader>
implements ClassificationReport.Builder {
private static final Logger LOGGER = LoggerFactory.getLogger(ClassificationReport.Builder.class);

View File

@ -4,6 +4,7 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -14,12 +15,10 @@ import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
import pro.taskana.task.api.CustomField;
import pro.taskana.task.api.TaskanaRole;
/** The implementation of CustomFieldValueReportBuilder. */
public class CustomFieldValueReportBuilderImpl
extends TimeIntervalReportBuilderImpl<
Builder, MonitorQueryItem, TimeIntervalColumnHeader>
extends TimeIntervalReportBuilderImpl<Builder, MonitorQueryItem, TimeIntervalColumnHeader>
implements CustomFieldValueReport.Builder {
private static final Logger LOGGER =
@ -28,9 +27,7 @@ public class CustomFieldValueReportBuilderImpl
private CustomField customField;
public CustomFieldValueReportBuilderImpl(
InternalTaskanaEngine taskanaEngine,
MonitorMapper monitorMapper,
CustomField customField) {
InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper, CustomField customField) {
super(taskanaEngine, monitorMapper);
this.customField = customField;
}

View File

@ -4,13 +4,13 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.monitor.api.reports.TaskStatusReport;
import pro.taskana.monitor.api.reports.item.TaskQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskanaRole;
/** The implementation of TaskStatusReportBuilder. */
public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {

View File

@ -9,6 +9,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -22,7 +23,6 @@ import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportConverter;
import pro.taskana.task.api.CustomField;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskanaRole;
/**
* Implementation of {@link TimeIntervalReportBuilder}.
@ -51,8 +51,7 @@ abstract class TimeIntervalReportBuilderImpl<
protected List<String> excludedClassificationIds;
protected Map<CustomField, String> customAttributeFilter;
TimeIntervalReportBuilderImpl(
InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
TimeIntervalReportBuilderImpl(InternalTaskanaEngine taskanaEngine, MonitorMapper monitorMapper) {
this.taskanaEngine = taskanaEngine;
this.monitorMapper = monitorMapper;
this.columnHeaders = Collections.emptyList();

View File

@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -19,13 +20,11 @@ import pro.taskana.monitor.api.reports.item.TimestampQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.task.api.Timestamp;
/** The implementation of {@link TimestampReport.Builder}. */
public class TimestampReportBuilderImpl
extends TimeIntervalReportBuilderImpl<
Builder, TimestampQueryItem, TimeIntervalColumnHeader>
extends TimeIntervalReportBuilderImpl<Builder, TimestampQueryItem, TimeIntervalColumnHeader>
implements TimestampReport.Builder {
private static final Logger LOGGER = LoggerFactory.getLogger(TimestampReport.Builder.class);

View File

@ -4,6 +4,7 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.InternalTaskanaEngine;
@ -14,12 +15,10 @@ import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
import pro.taskana.monitor.api.reports.item.MonitorQueryItem;
import pro.taskana.monitor.internal.MonitorMapper;
import pro.taskana.monitor.internal.preprocessor.DaysToWorkingDaysReportPreProcessor;
import pro.taskana.task.api.TaskanaRole;
/** The implementation of WorkbasketReportBuilder. */
public class WorkbasketReportBuilderImpl
extends TimeIntervalReportBuilderImpl<
Builder, MonitorQueryItem, TimeIntervalColumnHeader>
extends TimeIntervalReportBuilderImpl<Builder, MonitorQueryItem, TimeIntervalColumnHeader>
implements WorkbasketReport.Builder {
private static final Logger LOGGER = LoggerFactory.getLogger(WorkbasketReportBuilderImpl.class);

View File

@ -1,6 +1,6 @@
package pro.taskana.spi.history.api.events.task;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.models.Task;
/** Event fired if a task is cancelled to be claimed. */
public class ClaimCancelledEvent extends TaskEvent {

View File

@ -1,6 +1,6 @@
package pro.taskana.spi.history.api.events.task;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.models.Task;
/** Event fired if a task is claimed. */
public class ClaimedEvent extends TaskEvent {

View File

@ -1,7 +1,7 @@
package pro.taskana.spi.history.api.events.task;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
/** Event fired if a task is completed. */
public class CompletedEvent extends TaskEvent {

View File

@ -1,6 +1,6 @@
package pro.taskana.spi.history.api.events.task;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.models.Task;
/** Event fired if a task is created. */
public class CreatedEvent extends TaskEvent {

View File

@ -1,8 +1,8 @@
package pro.taskana.spi.history.api.events.task;
import pro.taskana.spi.history.api.events.TaskanaHistoryEvent;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
/** Super class for all task related events. */
public class TaskEvent extends TaskanaHistoryEvent {

View File

@ -3,8 +3,8 @@ package pro.taskana.spi.history.api.events.task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.task.api.Task;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** Event fired if a task is transferred. */
public class TransferredEvent extends TaskEvent {

View File

@ -1,7 +1,7 @@
package pro.taskana.spi.routing.api;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.models.Task;
/** Interface for TASKANA TaskRoutingProvider SPI. */
public interface TaskRoutingProvider {

View File

@ -1,6 +1,7 @@
package pro.taskana.task.api;
import pro.taskana.common.api.BaseQuery;
import pro.taskana.task.api.models.ObjectReference;
/** ObjectReferenceQuery for generating dynamic sql. */
public interface ObjectReferenceQuery

View File

@ -4,6 +4,7 @@ import pro.taskana.common.api.BaseQuery;
import pro.taskana.common.api.KeyDomain;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.task.api.models.TaskSummary;
/** TaskQuery for generating dynamic sql. */
public interface TaskQuery extends BaseQuery<TaskSummary, TaskQueryColumnName> {

View File

@ -3,8 +3,8 @@ package pro.taskana.task.api;
import java.util.List;
import java.util.Map;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
@ -15,6 +15,9 @@ import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Attachment;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.Task;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
/** The Task Service manages all operations on tasks. */

View File

@ -1,5 +1,7 @@
package pro.taskana.task.api;
import pro.taskana.task.api.models.Task;
/** This enum contains all timestamps saved in the database table for a {@link Task}. */
public enum Timestamp {
CREATED,

View File

@ -1,9 +1,9 @@
package pro.taskana.task.api;
package pro.taskana.task.api.models;
import java.time.Instant;
import java.util.Map;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
/** Attachment-Interface to specify Attachment Attributes. */
public interface Attachment extends AttachmentSummary {

View File

@ -1,8 +1,8 @@
package pro.taskana.task.api;
package pro.taskana.task.api.models;
import java.time.Instant;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
/**
* Interface for AttachmentSummaries. This is a specific short model-object which only contains the

View File

@ -1,4 +1,4 @@
package pro.taskana.task.api;
package pro.taskana.task.api.models;
import java.util.Objects;

View File

@ -1,11 +1,12 @@
package pro.taskana.task.api;
package pro.taskana.task.api.models;
import java.time.Instant;
import java.util.List;
import java.util.Map;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.task.api.TaskService;
/** task-Interface to specify attribute interactions. */
public interface Task extends TaskSummary {

View File

@ -1,11 +1,12 @@
package pro.taskana.task.api;
package pro.taskana.task.api.models;
import java.time.Instant;
import java.util.List;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.task.api.TaskState;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/**
* Interface for TaskSummary. This is a specific short model-object which only contains the most

View File

@ -12,6 +12,8 @@ import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.type.ClobTypeHandler;
import pro.taskana.common.internal.persistence.MapTypeHandler;
import pro.taskana.task.internal.models.AttachmentImpl;
import pro.taskana.task.internal.models.AttachmentSummaryImpl;
/** This class is the mybatis mapping of Attachment. */
@SuppressWarnings("checkstyle:LineLength")

View File

@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.models.ObjectReference;
/** This class is the mybatis mapping of ObjectReference. */
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})

View File

@ -11,9 +11,9 @@ import org.slf4j.LoggerFactory;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.ObjectReferenceQuery;
import pro.taskana.task.api.ObjectReferenceQueryColumnName;
import pro.taskana.task.api.models.ObjectReference;
/**
* Implementation of ObjectReferenceQuery interface.

View File

@ -14,6 +14,9 @@ import org.apache.ibatis.annotations.Update;
import pro.taskana.common.internal.CustomPropertySelector;
import pro.taskana.common.internal.persistence.MapTypeHandler;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.internal.models.MinimalTaskSummary;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.task.internal.models.TaskSummaryImpl;
/** This class is the mybatis mapping of task. */
@SuppressWarnings("checkstyle:LineLength")

View File

@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.common.api.KeyDomain;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
@ -23,8 +24,8 @@ import pro.taskana.task.api.ObjectReferenceQuery;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.TaskQueryColumnName;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.task.internal.models.TaskSummaryImpl;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.exceptions.NotAuthorizedToQueryWorkbasketException;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;

View File

@ -5,7 +5,8 @@ import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.internal.models.TaskSummaryImpl;
/** This class provides a mapper for all task queries. */
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})

View File

@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.spi.routing.api.TaskRoutingProvider;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.models.Task;
/**
* Loads TaskRoutingProvider SPI implementation(s) and passes requests to determine workbasketids to

View File

@ -16,12 +16,13 @@ import org.apache.ibatis.exceptions.PersistenceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
@ -41,24 +42,28 @@ import pro.taskana.spi.history.api.events.task.ClaimedEvent;
import pro.taskana.spi.history.api.events.task.CompletedEvent;
import pro.taskana.spi.history.api.events.task.CreatedEvent;
import pro.taskana.spi.history.internal.HistoryEventProducer;
import pro.taskana.task.api.Attachment;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.task.api.models.Attachment;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.task.internal.models.AttachmentImpl;
import pro.taskana.task.internal.models.AttachmentSummaryImpl;
import pro.taskana.task.internal.models.MinimalTaskSummary;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.task.internal.models.TaskSummaryImpl;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
import pro.taskana.workbasket.internal.WorkbasketQueryImpl;
import pro.taskana.workbasket.internal.WorkbasketSummaryImpl;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** This is the implementation of TaskService. */
@SuppressWarnings("checkstyle:OverloadMethodsDeclarationOrder")

View File

@ -20,14 +20,17 @@ import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.spi.history.api.events.task.TransferredEvent;
import pro.taskana.spi.history.internal.HistoryEventProducer;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.internal.models.MinimalTaskSummary;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.task.internal.models.TaskSummaryImpl;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
import pro.taskana.workbasket.internal.WorkbasketQueryImpl;
/** This class is responsible for the transfer of tasks. */

View File

@ -1,11 +1,11 @@
package pro.taskana.task.internal;
package pro.taskana.task.internal.models;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import pro.taskana.task.api.Attachment;
import pro.taskana.task.api.AttachmentSummary;
import pro.taskana.task.api.models.Attachment;
import pro.taskana.task.api.models.AttachmentSummary;
/**
* Attachment entity.

View File

@ -1,12 +1,12 @@
package pro.taskana.task.internal;
package pro.taskana.task.internal.models;
import java.time.Instant;
import java.util.Objects;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.internal.ClassificationSummaryImpl;
import pro.taskana.task.api.AttachmentSummary;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
import pro.taskana.task.api.models.AttachmentSummary;
import pro.taskana.task.api.models.ObjectReference;
/** The most important fields of the Attachment entity. */
public class AttachmentSummaryImpl implements AttachmentSummary {

View File

@ -1,4 +1,4 @@
package pro.taskana.task.internal;
package pro.taskana.task.internal.models;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.TaskState;

View File

@ -1,4 +1,4 @@
package pro.taskana.task.internal;
package pro.taskana.task.internal.models;
import java.util.ArrayList;
import java.util.Collections;
@ -7,14 +7,14 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import pro.taskana.classification.internal.ClassificationSummaryImpl;
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.task.api.Attachment;
import pro.taskana.task.api.AttachmentSummary;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.workbasket.internal.WorkbasketSummaryImpl;
import pro.taskana.task.api.models.Attachment;
import pro.taskana.task.api.models.AttachmentSummary;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** Task entity. */
public class TaskImpl extends TaskSummaryImpl implements Task {
@ -27,7 +27,7 @@ public class TaskImpl extends TaskSummaryImpl implements Task {
private CallbackState callbackState;
private List<Attachment> attachments = new ArrayList<>();
TaskImpl() {}
public TaskImpl() {}
public CallbackState getCallbackState() {
return callbackState;

View File

@ -1,19 +1,19 @@
package pro.taskana.task.internal;
package pro.taskana.task.internal.models;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.internal.ClassificationSummaryImpl;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.classification.internal.models.ClassificationSummaryImpl;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.task.api.AttachmentSummary;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.internal.WorkbasketSummaryImpl;
import pro.taskana.task.api.models.AttachmentSummary;
import pro.taskana.task.api.models.ObjectReference;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** Entity which contains the most important informations about a Task. */
public class TaskSummaryImpl implements TaskSummary {
@ -62,7 +62,7 @@ public class TaskSummaryImpl implements TaskSummary {
protected String custom15;
protected String custom16;
TaskSummaryImpl() {}
public TaskSummaryImpl() {}
/*
* (non-Javadoc)

View File

@ -1,6 +1,7 @@
package pro.taskana.workbasket.api;
import pro.taskana.common.api.BaseQuery;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/**
* AbstractWorkbasketAccessItemQuery for generating dynamic sql.

View File

@ -1,6 +1,7 @@
package pro.taskana.workbasket.api;
import pro.taskana.common.api.BaseQuery;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/** WorkbasketAccessItemQuery for generating dynamic SQL. */
public interface WorkbasketAccessItemQuery

View File

@ -4,6 +4,7 @@ import pro.taskana.common.api.BaseQuery;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** WorkitemQuery for generating dynamic sql. */
public interface WorkbasketQuery extends BaseQuery<WorkbasketSummary, WorkbasketQueryColumnName> {

View File

@ -13,6 +13,9 @@ import pro.taskana.workbasket.api.exceptions.WorkbasketAccessItemAlreadyExistExc
import pro.taskana.workbasket.api.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketInUseException;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** This service manages Workbaskets. */
public interface WorkbasketService {

View File

@ -1,7 +1,7 @@
package pro.taskana.workbasket.api.exceptions;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.workbasket.api.WorkbasketAccessItem;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
public class WorkbasketAccessItemAlreadyExistException extends TaskanaException {
private static final long serialVersionUID = 4716611657569005013L;

View File

@ -1,7 +1,7 @@
package pro.taskana.workbasket.api.exceptions;
import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.workbasket.api.models.Workbasket;
/** Thrown, when a workbasket does already exits, but wanted to create with same ID. */
public class WorkbasketAlreadyExistException extends TaskanaException {

View File

@ -1,7 +1,9 @@
package pro.taskana.workbasket.api;
package pro.taskana.workbasket.api.models;
import java.time.Instant;
import pro.taskana.workbasket.api.WorkbasketType;
/** Workbasket entity interface. */
// @JsonDeserialize(as = WorkbasketImpl.class)
public interface Workbasket extends WorkbasketSummary {

View File

@ -1,4 +1,4 @@
package pro.taskana.workbasket.api;
package pro.taskana.workbasket.api.models;
/**
* Interface for WorkbasketAccessItem. This interface is used to control access of users to

View File

@ -1,4 +1,6 @@
package pro.taskana.workbasket.api;
package pro.taskana.workbasket.api.models;
import pro.taskana.workbasket.api.WorkbasketType;
/**
* Interface for WorkbasketSummary. This is a specific short model-object which only contains the

View File

@ -13,7 +13,7 @@ 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.WorkbasketAccessItem;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/**
* AbstractWorkbasketAccessItemQueryImpl for generating dynamic SQL.

View File

@ -12,8 +12,9 @@ import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.workbasket.api.AccessItemQueryColumnName;
import pro.taskana.workbasket.api.WorkbasketAccessItem;
import pro.taskana.workbasket.api.WorkbasketAccessItemQuery;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
/** WorkbasketAccessItemQueryImpl for generating dynamic SQL. */
public class WorkbasketAccessItemQueryImpl implements WorkbasketAccessItemQuery {

View File

@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
/** This class is the mybatis mapping of workbasket access items. */
@SuppressWarnings("checkstyle:LineLength")
public interface WorkbasketAccessMapper {

View File

@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import pro.taskana.workbasket.internal.models.WorkbasketImpl;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** This class is the mybatis mapping of workbaskets. */
@SuppressWarnings("checkstyle:LineLength")
public interface WorkbasketMapper {

View File

@ -10,18 +10,18 @@ import org.slf4j.LoggerFactory;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.api.exceptions.TaskanaRuntimeException;
import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.WorkbasketQuery;
import pro.taskana.workbasket.api.WorkbasketQueryColumnName;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.WorkbasketType;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/**
* WorkbasketQuery for generating dynamic SQL.

View File

@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import pro.taskana.workbasket.api.WorkbasketAccessItemQuery;
import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** This class provides a mapper for all queries. */
@SuppressWarnings({"checkstyle:LineLength", "checkstyle:Indentation"})

View File

@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.BulkOperationResults;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
@ -24,19 +25,21 @@ import pro.taskana.common.internal.InternalTaskanaEngine;
import pro.taskana.common.internal.security.CurrentUserContext;
import pro.taskana.common.internal.util.IdGenerator;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskanaRole;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.workbasket.api.WorkbasketAccessItem;
import pro.taskana.workbasket.api.WorkbasketAccessItemQuery;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.WorkbasketQuery;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.exceptions.InvalidWorkbasketException;
import pro.taskana.workbasket.api.exceptions.WorkbasketAccessItemAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketInUseException;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
import pro.taskana.workbasket.internal.models.WorkbasketAccessItemImpl;
import pro.taskana.workbasket.internal.models.WorkbasketImpl;
import pro.taskana.workbasket.internal.models.WorkbasketSummaryImpl;
/** This is the implementation of WorkbasketService. */
public class WorkbasketServiceImpl implements WorkbasketService {

View File

@ -1,8 +1,8 @@
package pro.taskana.workbasket.internal;
package pro.taskana.workbasket.internal.models;
import java.util.Objects;
import pro.taskana.workbasket.api.WorkbasketAccessItem;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/** WorkbasketAccessItemImpl Entity. */
public class WorkbasketAccessItemImpl implements WorkbasketAccessItem {
@ -30,7 +30,7 @@ public class WorkbasketAccessItemImpl implements WorkbasketAccessItem {
private boolean permCustom11;
private boolean permCustom12;
WorkbasketAccessItemImpl() {
public WorkbasketAccessItemImpl() {
super();
}

View File

@ -1,10 +1,10 @@
package pro.taskana.workbasket.internal;
package pro.taskana.workbasket.internal.models;
import java.time.Instant;
import java.util.Objects;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** Workbasket entity. */
public class WorkbasketImpl extends WorkbasketSummaryImpl implements Workbasket {

View File

@ -1,9 +1,9 @@
package pro.taskana.workbasket.internal;
package pro.taskana.workbasket.internal.models;
import java.util.Objects;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.WorkbasketType;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** This entity contains the most important information about a workbasket. */
public class WorkbasketSummaryImpl implements WorkbasketSummary {

View File

@ -20,8 +20,8 @@ import pro.taskana.common.api.TaskanaEngine.ConnectionManagementMode;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.internal.TaskanaEngineTestConfiguration;
import pro.taskana.sampledata.SampleDataGenerator;
import pro.taskana.task.api.Attachment;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.models.Attachment;
import pro.taskana.task.api.models.ObjectReference;
/** Base class for all acceptance tests. */
public abstract class AbstractAccTest {

View File

@ -7,11 +7,11 @@ import acceptance.AbstractAccTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.internal.ClassificationImpl;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.internal.models.ClassificationImpl;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.NotAuthorizedException;

View File

@ -9,10 +9,10 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationInUseException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;

View File

@ -8,10 +8,10 @@ import java.util.List;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.classification.api.models.ClassificationSummary;
/** Acceptance test for all "get classification" scenarios. */
class GetClassificationAccTest extends AbstractAccTest {

View File

@ -15,8 +15,8 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.common.api.BaseQuery.SortDirection;
import pro.taskana.common.api.TimeInterval;
import pro.taskana.common.api.exceptions.ConcurrencyException;

View File

@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.security.JaasExtension;
/** Acceptance test for all "query classifications with pagination" scenarios. */

View File

@ -18,10 +18,10 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.exceptions.ConcurrencyException;
import pro.taskana.common.api.exceptions.DomainNotFoundException;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
@ -30,10 +30,10 @@ import pro.taskana.common.internal.jobs.JobRunner;
import pro.taskana.common.internal.util.DaysToWorkingDaysConverter;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.internal.TaskImpl;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.internal.models.TaskImpl;
/** Acceptance test for all "update classification" scenarios. */
@ExtendWith(JaasExtension.class)

View File

@ -11,9 +11,9 @@ import org.h2.store.fs.FileUtils;
import org.junit.jupiter.api.Test;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.internal.TaskanaEngineImpl;
import pro.taskana.common.internal.TaskanaEngineTestConfiguration;
import pro.taskana.task.api.TaskanaRole;
/**
* Test taskana's role configuration.

View File

@ -19,11 +19,11 @@ import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.jobs.TaskCleanupJob;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
/** Acceptance test for all "jobs tasks runner" scenarios. */

View File

@ -19,7 +19,7 @@ import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** Acceptance test for all "jobs workbasket runner" scenarios. */
@ExtendWith(JaasExtension.class)

View File

@ -9,8 +9,8 @@ import acceptance.AbstractAccTest;
import java.util.List;
import org.junit.jupiter.api.Test;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.models.ObjectReference;
/** Acceptance test for all "get classification" scenarios. */
class QueryObjectReferenceAccTest extends AbstractAccTest {

View File

@ -10,10 +10,10 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.security.JaasExtension;
import pro.taskana.task.api.ObjectReference;
import pro.taskana.task.api.ObjectReferenceQuery;
import pro.taskana.task.api.TaskQuery;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.models.ObjectReference;
/** Acceptance test for all "query classifications with pagination" scenarios. */
@ExtendWith(JaasExtension.class)

View File

@ -14,10 +14,10 @@ import java.util.TimeZone;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.Classification;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
import pro.taskana.classification.api.models.Classification;
import pro.taskana.common.api.JobService;
import pro.taskana.common.api.ScheduledJob;
import pro.taskana.common.api.exceptions.AttachmentPersistenceException;
@ -29,19 +29,19 @@ import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.JobServiceImpl;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.internal.TaskImpl;
import pro.taskana.workbasket.api.Workbasket;
import pro.taskana.workbasket.api.WorkbasketAccessItem;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketType;
import pro.taskana.workbasket.api.exceptions.InvalidWorkbasketException;
import pro.taskana.workbasket.api.exceptions.WorkbasketAccessItemAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
import pro.taskana.workbasket.api.models.Workbasket;
import pro.taskana.workbasket.api.models.WorkbasketAccessItem;
/** Acceptance test for access to timestamps from different timezones. */
@ExtendWith(JaasExtension.class)

View File

@ -140,10 +140,7 @@ class ProvideCategoryReportAccTest extends AbstractReportAccTest {
List<TimeIntervalColumnHeader> columnHeaders = getShortListOfColumnHeaders();
CategoryReport report =
monitorService
.createCategoryReportBuilder()
.withColumnHeaders(columnHeaders)
.buildReport();
monitorService.createCategoryReportBuilder().withColumnHeaders(columnHeaders).buildReport();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report, columnHeaders));

View File

@ -49,8 +49,7 @@ class ProvideClassificationReportAccTest extends AbstractReportAccTest {
throws InvalidArgumentException, NotAuthorizedException {
MonitorService monitorService = taskanaEngine.getMonitorService();
ClassificationReport report =
monitorService.createClassificationReportBuilder().buildReport();
ClassificationReport report = monitorService.createClassificationReportBuilder().buildReport();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report));

View File

@ -40,9 +40,7 @@ class ProvideCustomFieldValueReportAccTest extends AbstractReportAccTest {
Assertions.assertThrows(
NotAuthorizedException.class,
() ->
monitorService
.createCustomFieldValueReportBuilder(CustomField.CUSTOM_1)
.buildReport());
monitorService.createCustomFieldValueReportBuilder(CustomField.CUSTOM_1).buildReport());
}
@WithAccessId(userName = "monitor")
@ -52,9 +50,7 @@ class ProvideCustomFieldValueReportAccTest extends AbstractReportAccTest {
MonitorService monitorService = taskanaEngine.getMonitorService();
CustomFieldValueReport report =
monitorService
.createCustomFieldValueReportBuilder(CustomField.CUSTOM_1)
.buildReport();
monitorService.createCustomFieldValueReportBuilder(CustomField.CUSTOM_1).buildReport();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report));
@ -80,9 +76,7 @@ class ProvideCustomFieldValueReportAccTest extends AbstractReportAccTest {
MonitorService monitorService = taskanaEngine.getMonitorService();
CustomFieldValueReport report =
monitorService
.createCustomFieldValueReportBuilder(CustomField.CUSTOM_2)
.buildReport();
monitorService.createCustomFieldValueReportBuilder(CustomField.CUSTOM_2).buildReport();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(reportToString(report));

View File

@ -44,10 +44,7 @@ class ProvideTimestampReportAccTest extends AbstractReportAccTest {
.mapToObj(TimeIntervalColumnHeader.Date::new)
.collect(Collectors.toList());
TimestampReport timestampReport =
monitorService
.createTimestampReportBuilder()
.withColumnHeaders(headers)
.buildReport();
monitorService.createTimestampReportBuilder().withColumnHeaders(headers).buildReport();
final HashSet<String> org1Set = new HashSet<>(Arrays.asList("N/A", "org1"));
final HashSet<String> allOtherOrgLevelSet = new HashSet<>(Collections.singletonList("N/A"));

View File

@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.classification.api.ClassificationService;
import pro.taskana.classification.api.ClassificationSummary;
import pro.taskana.classification.api.models.ClassificationSummary;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;

View File

@ -8,11 +8,11 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.common.api.TaskanaRole;
import pro.taskana.common.api.exceptions.NotAuthorizedException;
import pro.taskana.common.internal.TaskanaEngineProxyForTest;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskanaRole;
/** Acceptance test for task queries and authorization. */
@ExtendWith(JaasExtension.class)

View File

@ -11,7 +11,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.models.TaskSummary;
/** Acceptance test for task queries and authorization. */
@ExtendWith(JaasExtension.class)

View File

@ -14,7 +14,7 @@ import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.workbasket.api.WorkbasketPermission;
import pro.taskana.workbasket.api.WorkbasketService;
import pro.taskana.workbasket.api.WorkbasketSummary;
import pro.taskana.workbasket.api.models.WorkbasketSummary;
/** Acceptance test for workbasket queries and authorization. */
@ExtendWith(JaasExtension.class)

View File

@ -25,13 +25,13 @@ import pro.taskana.common.api.exceptions.TaskanaException;
import pro.taskana.security.JaasExtension;
import pro.taskana.security.WithAccessId;
import pro.taskana.task.api.CallbackState;
import pro.taskana.task.api.Task;
import pro.taskana.task.api.TaskService;
import pro.taskana.task.api.TaskState;
import pro.taskana.task.api.TaskSummary;
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
import pro.taskana.task.api.exceptions.TaskNotFoundException;
import pro.taskana.task.internal.TaskImpl;
import pro.taskana.task.api.models.Task;
import pro.taskana.task.api.models.TaskSummary;
import pro.taskana.task.internal.models.TaskImpl;
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
/** Acceptance test for all "create task" scenarios. */

Some files were not shown because too many files have changed in this diff Show More