Revize 66ee7533
Přidáno uživatelem stepanekp před více než 1 rok
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ProjectController.java | ||
---|---|---|
4 | 4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; |
5 | 5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; |
6 | 6 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; |
7 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; |
|
8 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; |
|
7 | 9 |
import org.slf4j.Logger; |
8 | 10 |
import org.slf4j.LoggerFactory; |
9 | 11 |
import org.springframework.beans.factory.annotation.Autowired; |
... | ... | |
21 | 23 |
/** |
22 | 24 |
* This class contains all endpoints of projects.html |
23 | 25 |
*/ |
24 |
@Controller |
|
26 |
//@Controller
|
|
25 | 27 |
public class ProjectController { |
26 | 28 |
|
27 | 29 |
private final Logger LOGGER = LoggerFactory.getLogger(ProjectController.class); |
... | ... | |
36 | 38 |
*/ |
37 | 39 |
@GetMapping("/management/projects") |
38 | 40 |
public String projects(Model model) { |
41 |
ProjectToDto projectToDto = new ProjectToDto(); |
|
39 | 42 |
List<Node> parents = new ArrayList<>(); |
40 |
List<Project> parentProjects = projectService.getParentProjects();
|
|
41 |
for(Project parentProject : parentProjects) { |
|
43 |
List<ProjectDto> parentProjects = projectToDto.convert(projectService.getParentProjects());
|
|
44 |
for(ProjectDto parentProject : parentProjects) {
|
|
42 | 45 |
Node n = new Node(); |
43 | 46 |
n.project = parentProject; |
44 | 47 |
n.children = new ArrayList<>(); |
... | ... | |
46 | 49 |
} |
47 | 50 |
|
48 | 51 |
for(Node n : parents) { |
49 |
n.children = calculate(n.project); |
|
52 |
n.children = projectService.calculate(n.project);
|
|
50 | 53 |
} |
51 | 54 |
|
52 | 55 |
model.addAttribute("parents", parents); |
... | ... | |
146 | 149 |
* @param p Project for which the hierarchy will be generated |
147 | 150 |
* @return List of project's children with their hierarchy |
148 | 151 |
*/ |
149 |
private ArrayList<Node> calculate(Project p) { |
|
152 |
private ArrayList<Node> calculate(ProjectDto p) { |
|
153 |
ProjectToDto projectToDto = new ProjectToDto(); |
|
150 | 154 |
ArrayList<Node> nodes = new ArrayList<>(); |
151 |
List<Project> projects = projectService.getSubordinateProjectsTo(p.getId());
|
|
152 |
for(Project project : projects) { |
|
155 |
List<ProjectDto> projects = projectToDto.convert(projectService.getSubordinateProjectsTo(p.getId()));
|
|
156 |
for(ProjectDto project : projects) {
|
|
153 | 157 |
Node n = new Node(); |
154 | 158 |
n.project = project; |
155 | 159 |
n.children = calculate(project); |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/types/Node.java | ||
---|---|---|
1 | 1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types; |
2 | 2 |
|
3 | 3 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; |
4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; |
|
4 | 5 |
|
5 | 6 |
import java.util.ArrayList; |
6 | 7 |
|
7 | 8 |
public class Node { |
8 |
public Project project; |
|
9 |
public ProjectDto project;
|
|
9 | 10 |
public ArrayList<Node> children; |
10 | 11 |
} |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectService.java | ||
---|---|---|
1 | 1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.service; |
2 | 2 |
|
3 | 3 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; |
4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; |
|
5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; |
|
4 | 6 |
|
7 |
import java.util.ArrayList; |
|
5 | 8 |
import java.util.List; |
6 | 9 |
|
7 | 10 |
public interface ProjectService { |
... | ... | |
46 | 49 |
* @return List of subordinate projects |
47 | 50 |
*/ |
48 | 51 |
List<Project> getSubordinateProjectsTo(Long id); |
52 |
|
|
53 |
/** |
|
54 |
* Method creating the hierarchy of projects by recursion |
|
55 |
* @param p Project for which the hierarchy will be generated |
|
56 |
* @return List of project's children with their hierarchy |
|
57 |
*/ |
|
58 |
ArrayList<Node> calculate(ProjectDto p); |
|
49 | 59 |
} |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectServiceImpl.java | ||
---|---|---|
1 | 1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.service; |
2 | 2 |
|
3 | 3 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; |
4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; |
|
4 | 5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.repository.ProjectRepository; |
6 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; |
|
7 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; |
|
5 | 8 |
import org.springframework.beans.factory.annotation.Autowired; |
6 | 9 |
import org.springframework.stereotype.Service; |
7 | 10 |
|
... | ... | |
58 | 61 |
public List<Project> getSubordinateProjectsTo(Long id) { |
59 | 62 |
return projectRepository.getSubordinateProjectsTo(id); |
60 | 63 |
} |
64 |
|
|
65 |
@Override |
|
66 |
public ArrayList<Node> calculate(ProjectDto p) { |
|
67 |
ProjectToDto projectToDto = new ProjectToDto(); |
|
68 |
ArrayList<Node> nodes = new ArrayList<>(); |
|
69 |
List<ProjectDto> projects = projectToDto.convert(getSubordinateProjectsTo(p.getId())); |
|
70 |
for(ProjectDto project : projects) { |
|
71 |
Node n = new Node(); |
|
72 |
n.project = project; |
|
73 |
n.children = calculate(project); |
|
74 |
nodes.add(n); |
|
75 |
} |
|
76 |
return nodes; |
|
77 |
} |
|
61 | 78 |
} |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ProjectController.java | ||
---|---|---|
1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; |
|
2 |
|
|
3 |
import com.google.gson.Gson; |
|
4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; |
|
5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; |
|
6 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; |
|
7 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; |
|
8 |
import org.springframework.beans.factory.annotation.Autowired; |
|
9 |
import org.springframework.http.HttpStatus; |
|
10 |
import org.springframework.http.ResponseEntity; |
|
11 |
import org.springframework.stereotype.Controller; |
|
12 |
import org.springframework.web.bind.annotation.GetMapping; |
|
13 |
import org.springframework.web.bind.annotation.RequestMapping; |
|
14 |
|
|
15 |
import java.util.ArrayList; |
|
16 |
import java.util.List; |
|
17 |
|
|
18 |
|
|
19 |
/** |
|
20 |
* This class contains all endpoints of projects.html |
|
21 |
*/ |
|
22 |
@Controller |
|
23 |
@RequestMapping("v2/management") |
|
24 |
public class ProjectController { |
|
25 |
|
|
26 |
@Autowired |
|
27 |
private ProjectService projectService; |
|
28 |
|
|
29 |
@GetMapping("/projects") |
|
30 |
public ResponseEntity<String> getProjectsData() { |
|
31 |
ProjectToDto projectToDto = new ProjectToDto(); |
|
32 |
List<Node> parents = new ArrayList<>(); |
|
33 |
List<ProjectDto> parentProjects = projectToDto.convert(projectService.getParentProjects()); |
|
34 |
for(ProjectDto parentProject : parentProjects) { |
|
35 |
Node n = new Node(); |
|
36 |
n.project = parentProject; |
|
37 |
n.children = new ArrayList<>(); |
|
38 |
parents.add(n); |
|
39 |
} |
|
40 |
|
|
41 |
for(Node n : parents) { |
|
42 |
n.children = projectService.calculate(n.project); |
|
43 |
} |
|
44 |
|
|
45 |
return ResponseEntity.status(parents.size() > 0 ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(new Gson().toJson(parents)); |
|
46 |
} |
|
47 |
|
|
48 |
} |
|
49 |
|
Také k dispozici: Unified diff
https://kivprogrammers.atlassian.net/browse/TSP2-28 integrace kontroleru pro hierarchie projektů