Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 66ee7533

Přidáno uživatelem stepanekp před více než 1 rok

https://kivprogrammers.atlassian.net/browse/TSP2-28 integrace kontroleru pro hierarchie projektů

Zobrazit rozdíly:

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