Skip to content

Commit 45a61da

Browse files
committed
work
1 parent 01cbcd4 commit 45a61da

11 files changed

+265
-267
lines changed

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/project/ProjectService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,6 @@ public interface ProjectService {
2727

2828
Project moveProjectToAnotherContext(Project thisProject, Context newContext);
2929

30+
Project getReferenceById(long projectId);
31+
3032
}

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/project/ProjectServiceImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,12 @@ public Project moveProjectToAnotherContext(@NotNull Project thisProject, @NotNul
123123
return thisProject;
124124
}
125125

126-
//TODO: remove Recursion, remove unbounded Recursion and List instead of Page.
126+
@Override
127+
public Project getReferenceById(long projectId) {
128+
return projectRepository.getReferenceById(projectId);
129+
}
130+
131+
//TODO: remove Recursion, remove unbounded Recursion and List instead of Page.
127132
@Deprecated
128133
private List<Project> getAllChildrenOfProject(@NotNull Project thisProject) {
129134
log.info("getAllChildrenOfProject");

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskService.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,6 @@
1111

1212
public interface TaskService {
1313

14-
// void moveAllCompletedToTrash(Context context);
15-
// void emptyTrash(Context context);
16-
17-
// Task moveTaskToRootProject(Task task);
18-
// Task moveTaskToAnotherProject(Task task, Project project);
19-
20-
Task addToInbox(Task task);
21-
Task addToProject(Task task);
22-
Task addToRootProject(Task task);
23-
24-
Task updatedViaTaskstate(Task task);
25-
Task updatedViaProject(Task task);
26-
Task updatedViaProjectRoot(Task task);
27-
2814
//TODO: rename to findById
2915
Task findOne(long taskId);
3016
Page<Task> findbyTaskstate(TaskState taskState, Context context, Pageable request);
@@ -34,10 +20,6 @@ public interface TaskService {
3420

3521
boolean projectHasNoTasks(Project project);
3622

37-
long getMaxOrderIdTaskState(TaskState taskState, Context context);
38-
long getMaxOrderIdProject(Project project, Context context);
39-
long getMaxOrderIdProjectRoot(Context context);
40-
4123
/**
4224
* Before: sourceTask is dragged from above down to destinationTask, so sourceTask is above destinationTask.
4325
* After: sourceTask is placed to the position of destinationTask, all tasks between old position of sourceTask
@@ -63,13 +45,15 @@ public interface TaskService {
6345
void moveTasksDownByProject(Task sourceTask, Task destinationTask);
6446

6547
Task saveAndFlush(Task task);
66-
48+
void saveAll(List<Task> taskListChanged);
6749
void deleteAll(List<Task> taskListDeleted);
6850

69-
void saveAll(List<Task> taskListChanged);
7051

71-
List<Task> findByTaskStateAndContextOrderByOrderIdTaskStateAsc(TaskState completed, Context context);
52+
List<Task> findByTaskStateAndContextOrderByOrderIdTaskStateAsc(TaskState taskState, Context context);
53+
List<Task> findByTaskStateAndContext(TaskState taskState, Context context);
7254

73-
List<Task> findByTaskStateAndContext(TaskState trash, Context context);
55+
Task findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(TaskState taskState, Context context);
56+
Task findTopByProjectAndContextOrderByOrderIdProjectDesc(Project project, Context context);
57+
Task findTopByProjectIsNullAndContextOrderByOrderIdProjectDesc(Context context);
7458

7559
}

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskServiceImpl.java

Lines changed: 15 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.woehlke.java.simpleworklist.domain.db.data.project.ProjectRepository;
1414
import org.woehlke.java.simpleworklist.domain.db.data.TaskState;
1515

16-
import javax.validation.Valid;
1716
import javax.validation.constraints.Min;
1817
import javax.validation.constraints.NotNull;
1918
import java.util.*;
@@ -87,144 +86,6 @@ public Task findOne(@Min(1L) long taskId) {
8786
}
8887
}
8988

90-
@Override
91-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
92-
public Task updatedViaTaskstate(Task task) {
93-
log.info("updatedViaTaskstate");
94-
if(task.getProject() != null){
95-
long projectId = task.getProject().getId();
96-
Project project = projectRepository.getReferenceById(projectId);
97-
task.setProject(project);
98-
}
99-
if(task.getLastProject()!=null){
100-
long projectId = task.getLastProject().getId();
101-
Project project = projectRepository.getReferenceById(projectId);
102-
task.setLastProject(project);
103-
}
104-
task = taskRepository.saveAndFlush(task);
105-
log.info("persisted: " + task.outTaskstate());
106-
return task;
107-
}
108-
109-
@Override
110-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
111-
public Task updatedViaProject(Task task) {
112-
log.info("updatedViaProject");
113-
if(task.getProject() != null){
114-
long projectId = task.getProject().getId();
115-
Project project = projectRepository.getReferenceById(projectId);
116-
task.setProject(project);
117-
}
118-
if(task.getLastProject()!=null){
119-
long projectId = task.getLastProject().getId();
120-
Project project = projectRepository.getReferenceById(projectId);
121-
task.setLastProject(project);
122-
}
123-
task = taskRepository.saveAndFlush(task);
124-
log.info("persisted Task: " + task.outProject());
125-
return task;
126-
}
127-
128-
@Override
129-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
130-
public Task updatedViaProjectRoot( @Valid Task task) {
131-
log.info("updatedViaProject");
132-
if(task.getProject() != null){
133-
long projectId = task.getProject().getId();
134-
Project project = projectRepository.getReferenceById(projectId);
135-
task.setProject(project);
136-
}
137-
if(task.getLastProject()!=null){
138-
long projectId = task.getLastProject().getId();
139-
Project project = projectRepository.getReferenceById(projectId);
140-
task.setLastProject(project);
141-
}
142-
task = taskRepository.saveAndFlush(task);
143-
log.info("persisted Task: " + task.outProject());
144-
return task;
145-
}
146-
147-
@Override
148-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
149-
public Task addToInbox( @Valid Task task) {
150-
log.info("addToInbox");
151-
task.setUuid(UUID.randomUUID());
152-
task.setRootProject();
153-
task.unsetFocus();
154-
task.setTaskState(TaskState.INBOX);
155-
task.setLastProject(null);
156-
long maxOrderIdProject = this.getMaxOrderIdProjectRoot(task.getContext());
157-
task.setOrderIdProject(++maxOrderIdProject);
158-
long maxOrderIdTaskState = this.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
159-
task.setOrderIdTaskState(++maxOrderIdTaskState);
160-
task = taskRepository.saveAndFlush(task);
161-
log.info("persisted: " + task.outTaskstate());
162-
return task;
163-
}
164-
165-
@Override
166-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
167-
public Task addToProject( @Valid Task task) {
168-
log.info("addToProject");
169-
task.setUuid(UUID.randomUUID());
170-
task.unsetFocus();
171-
long maxOrderIdProject = this.getMaxOrderIdProject(task.getProject(),task.getContext());
172-
task.setOrderIdProject(++maxOrderIdProject);
173-
long maxOrderIdTaskState = this.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
174-
task.setOrderIdTaskState(++maxOrderIdTaskState);
175-
task = taskRepository.saveAndFlush(task);
176-
log.info("persisted: " + task.outProject());
177-
return task;
178-
}
179-
180-
@Override
181-
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
182-
public Task addToRootProject( @Valid Task task) {
183-
log.info("addToRootProject");
184-
task.setUuid(UUID.randomUUID());
185-
task.setRootProject();
186-
task.unsetFocus();
187-
task.moveToInbox();
188-
long maxOrderIdProject = this.getMaxOrderIdProjectRoot(task.getContext());
189-
task.setOrderIdProject(++maxOrderIdProject);
190-
long maxOrderIdTaskState = this.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
191-
task.setOrderIdTaskState(++maxOrderIdTaskState);
192-
task = taskRepository.saveAndFlush(task);
193-
log.info("persisted: " + task.outProject());
194-
return task;
195-
}
196-
197-
198-
199-
@Override
200-
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
201-
public long getMaxOrderIdTaskState( TaskState taskState,Context context) {
202-
Task task = taskRepository.findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(
203-
taskState,
204-
context
205-
);
206-
return (task==null) ? 0 : task.getOrderIdTaskState();
207-
}
208-
209-
@Override
210-
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
211-
public long getMaxOrderIdProject( Project project,Context context) {
212-
Task task = taskRepository.findTopByProjectAndContextOrderByOrderIdProjectDesc(
213-
project,
214-
context
215-
);
216-
return (task==null) ? 0 : task.getOrderIdProject();
217-
}
218-
219-
@Override
220-
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
221-
public long getMaxOrderIdProjectRoot( Context context) {
222-
Task task = taskRepository.findTopByProjectIsNullAndContextOrderByOrderIdProjectDesc(
223-
context
224-
);
225-
return (task==null) ? 0 : task.getOrderIdProject();
226-
}
227-
22889
@Override
22990
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
23091
public void moveTasksUpByTaskState(Task sourceTask, Task destinationTask ) {
@@ -439,4 +300,19 @@ public List<Task> findByTaskStateAndContext(TaskState trash, Context context) {
439300
return taskRepository.findByTaskStateAndContext(trash,context);
440301
}
441302

303+
@Override
304+
public Task findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(TaskState taskState, Context context) {
305+
return taskRepository.findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(taskState,context);
306+
}
307+
308+
@Override
309+
public Task findTopByProjectAndContextOrderByOrderIdProjectDesc(Project project, Context context) {
310+
return taskRepository.findTopByProjectAndContextOrderByOrderIdProjectDesc(project,context);
311+
}
312+
313+
@Override
314+
public Task findTopByProjectIsNullAndContextOrderByOrderIdProjectDesc(Context context) {
315+
return taskRepository.findTopByProjectIsNullAndContextOrderByOrderIdProjectDesc(context);
316+
}
317+
442318
}

src/main/java/org/woehlke/java/simpleworklist/domain/meso/TaskLifecycleController.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.woehlke.java.simpleworklist.domain.db.data.task.TaskEnergy;
1616
import org.woehlke.java.simpleworklist.domain.db.data.task.TaskTime;
1717
import org.woehlke.java.simpleworklist.domain.db.data.TaskState;
18-
import org.woehlke.java.simpleworklist.domain.meso.taskworkflow.TaskStateTaskControllerService;
18+
import org.woehlke.java.simpleworklist.domain.meso.taskworkflow.TaskLifecycleService;
1919
import org.woehlke.java.simpleworklist.domain.meso.taskworkflow.TransformTaskIntoProjektService;
2020
import org.woehlke.java.simpleworklist.domain.db.user.UserAccount;
2121
import org.woehlke.java.simpleworklist.domain.meso.session.UserSessionBean;
@@ -37,16 +37,14 @@
3737
@RequestMapping(path = "/taskstate/task")
3838
public class TaskLifecycleController extends AbstractController {
3939

40-
private final TransformTaskIntoProjektService transformTaskIntoProjektService;
41-
private final TaskStateTaskControllerService taskStateTaskControllerService;
40+
private final TaskLifecycleService taskLifecycleService;
4241

4342
@Autowired
4443
public TaskLifecycleController(
4544
TransformTaskIntoProjektService transformTaskIntoProjektService,
46-
TaskStateTaskControllerService taskStateTaskControllerService
45+
TaskLifecycleService taskLifecycleService
4746
) {
48-
this.transformTaskIntoProjektService = transformTaskIntoProjektService;
49-
this.taskStateTaskControllerService = taskStateTaskControllerService;
47+
this.taskLifecycleService = taskLifecycleService;
5048
}
5149

5250
@RequestMapping(path = "/add", method = RequestMethod.GET)
@@ -105,7 +103,7 @@ public final String addNewTaskToInboxPost(
105103
model.addAttribute("userSession", userSession);
106104
return "taskstate/task/add";
107105
} else {
108-
task = taskStateTaskControllerService.addToInbox(task);
106+
task = taskLifecycleService.addToInbox(task);
109107
log.info(task.toString());
110108
model.addAttribute("userSession", userSession);
111109
return "redirect:/taskstate/" + task.getTaskState().name().toLowerCase();
@@ -177,7 +175,7 @@ public final String editTaskPost(
177175
} else {
178176
task.unsetFocus();
179177
Task persistentTask = addProject(task);
180-
task = taskStateTaskControllerService.updatedViaTaskstate(persistentTask);
178+
task = taskLifecycleService.updatedViaTaskstate(persistentTask);
181179
model.addAttribute("userSession", userSession);
182180
return task.getTaskState().getUrl();
183181
}
@@ -191,7 +189,7 @@ public final String deleteTaskGet(
191189
) {
192190
log.info("deleteTaskGet");
193191
task.delete();
194-
taskStateTaskControllerService.updatedViaTaskstate(task);
192+
taskLifecycleService.updatedViaTaskstate(task);
195193
model.addAttribute("userSession", userSession);
196194
model.addAttribute("dataPage", true);
197195
return "redirect:/taskstate/trash";
@@ -205,7 +203,7 @@ public final String undeleteTaskGet(
205203
) {
206204
log.info("undeleteTaskGet");
207205
task.undelete();
208-
taskStateTaskControllerService.updatedViaTaskstate(task);
206+
taskLifecycleService.updatedViaTaskstate(task);
209207
model.addAttribute("userSession", userSession);
210208
model.addAttribute("dataPage", true);
211209
return "redirect:/taskstate/completed";
@@ -219,7 +217,7 @@ public final String transformTaskIntoProjectGet(
219217
) {
220218
log.info("transformTaskIntoProjectGet");
221219
model.addAttribute("dataPage", true);
222-
return transformTaskIntoProjektService.transformTaskIntoProjectGet(task, userSession, model);
220+
return taskLifecycleService.transformTaskIntoProjectGet(task, userSession, model);
223221
}
224222

225223
@RequestMapping(path = "/{taskId}/complete", method = RequestMethod.GET)
@@ -229,11 +227,11 @@ public final String setCompletedTaskGet(
229227
Model model
230228
) {
231229
task.complete();
232-
long maxOrderIdTaskState = taskStateTaskControllerService.getMaxOrderIdTaskState(
230+
long maxOrderIdTaskState = taskLifecycleService.getMaxOrderIdTaskState(
233231
TaskState.COMPLETED, task.getContext()
234232
);
235233
task.setOrderIdTaskState(++maxOrderIdTaskState);
236-
task = taskStateTaskControllerService.updatedViaTaskstate(task);
234+
task = taskLifecycleService.updatedViaTaskstate(task);
237235
model.addAttribute("userSession", userSession);
238236
model.addAttribute("dataPage", true);
239237
return task.getUrl();
@@ -246,7 +244,7 @@ public final String unsetCompletedTaskGet(
246244
Model model
247245
) {
248246
task.incomplete();
249-
long maxOrderIdTaskState = taskStateTaskControllerService.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
247+
long maxOrderIdTaskState = taskLifecycleService.getMaxOrderIdTaskState(task.getTaskState(),task.getContext());
250248
task.setOrderIdTaskState(++maxOrderIdTaskState);
251249
task = taskService.updatedViaTaskstate(task);
252250
model.addAttribute("userSession", userSession);
@@ -261,7 +259,7 @@ public final String setFocusGet(
261259
Model model
262260
){
263261
task.setFocus();
264-
task = taskStateTaskControllerService.updatedViaTaskstate(task);
262+
task = taskLifecycleService.updatedViaTaskstate(task);
265263
model.addAttribute("userSession", userSession);
266264
model.addAttribute("dataPage", true);
267265
return task.getUrl();
@@ -274,7 +272,7 @@ public final String unsetFocusGet(
274272
Model model
275273
){
276274
task.unsetFocus();
277-
task = taskStateTaskControllerService.updatedViaTaskstate(task);
275+
task = taskLifecycleService.updatedViaTaskstate(task);
278276
model.addAttribute("userSession", userSession);
279277
model.addAttribute("dataPage", true);
280278
return task.getUrl();
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.woehlke.java.simpleworklist.domain.meso.taskworkflow;
2+
3+
import org.springframework.ui.Model;
4+
import org.woehlke.java.simpleworklist.domain.db.data.Context;
5+
import org.woehlke.java.simpleworklist.domain.db.data.Project;
6+
import org.woehlke.java.simpleworklist.domain.db.data.Task;
7+
import org.woehlke.java.simpleworklist.domain.db.data.TaskState;
8+
import org.woehlke.java.simpleworklist.domain.meso.session.UserSessionBean;
9+
10+
public interface TaskLifecycleService {
11+
12+
Task addToInbox(Task task);
13+
Task addToProject(Task task);
14+
Task addToRootProject(Task task);
15+
16+
Task updatedViaTaskstate(Task task);
17+
Task updatedViaProject(Task task);
18+
Task updatedViaProjectRoot(Task task);
19+
20+
21+
long getMaxOrderIdTaskState(TaskState completed, Context context);
22+
long getMaxOrderIdProject(Project project, Context context);
23+
long getMaxOrderIdProjectRoot(Context context);
24+
25+
26+
String transformTaskIntoProjectGet(Task task, UserSessionBean userSession, Model model);
27+
}

0 commit comments

Comments
 (0)