easytests.personal.dto.IssueStandardDto   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
c 0
b 0
f 0
loc 78
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A map(IssueStandardModelInterface) 0 26 3
A mapInto(IssueStandardModelInterface) 0 27 3
1
package easytests.personal.dto;
2
3
import easytests.core.models.*;
4
import easytests.core.models.empty.SubjectModelEmpty;
5
import java.util.ArrayList;
6
import java.util.List;
7
import javax.validation.Valid;
8
import javax.validation.constraints.Max;
9
import javax.validation.constraints.Min;
10
import javax.validation.constraints.NotNull;
11
import javax.validation.constraints.Null;
12
import lombok.Data;
13
14
/**
15
 * @author SingularityA
16
 */
17
@Data
18
public class IssueStandardDto {
19
20
    @Null
21
    private Integer id;
22
23
    @Min(1)
24
    @Max(1500)
25
    private Integer timeLimit;
26
27
    @Min(1)
28
    @Max(3000)
29
    private Integer questionsNumber;
30
31
    @Valid
32
    private List<IssueStandardTopicPriorityDto> topicPriorities;
33
34
    @Valid
35
    private List<IssueStandardQuestionTypeOptionDto> questionTypeOptions;
36
37
    @NotNull
38
    private Integer subjectId;
39
40
    public void map(IssueStandardModelInterface issueStandardModel) {
41
        final List<IssueStandardTopicPriorityDto> topicPriorityDtoList
42
                = new ArrayList<>(issueStandardModel.getTopicPriorities().size());
43
44
        for (IssueStandardTopicPriorityModelInterface topicPriorityModel: issueStandardModel.getTopicPriorities()) {
45
            final IssueStandardTopicPriorityDto topicPriorityDto = new IssueStandardTopicPriorityDto();
46
            topicPriorityDto.map(topicPriorityModel);
47
            topicPriorityDtoList.add(topicPriorityDto);
48
        }
49
50
        final List<IssueStandardQuestionTypeOptionDto> questionTypeOptionDtoList
51
                = new ArrayList<>(issueStandardModel.getQuestionTypeOptions().size());
52
53
        for (IssueStandardQuestionTypeOptionModelInterface questionTypeOptionModel
54
                : issueStandardModel.getQuestionTypeOptions()) {
55
56
            final IssueStandardQuestionTypeOptionDto questionTypeOptionDto = new IssueStandardQuestionTypeOptionDto();
57
            questionTypeOptionDto.map(questionTypeOptionModel);
58
            questionTypeOptionDtoList.add(questionTypeOptionDto);
59
        }
60
61
        this.setTimeLimit(issueStandardModel.getTimeLimit());
62
        this.setQuestionsNumber(issueStandardModel.getQuestionsNumber());
63
        this.setTopicPriorities(topicPriorityDtoList);
64
        this.setQuestionTypeOptions(questionTypeOptionDtoList);
65
        this.setSubjectId(issueStandardModel.getSubject().getId());
66
    }
67
68
    public void mapInto(IssueStandardModelInterface issueStandardModel) {
69
70
        final List<IssueStandardTopicPriorityModelInterface> topicPriorityModelList
71
                = new ArrayList<>(this.getTopicPriorities().size());
72
73
        for (IssueStandardTopicPriorityDto topicPriorityDto: this.getTopicPriorities()) {
74
            final IssueStandardTopicPriorityModelInterface topicPriorityModel
75
                    = new IssueStandardTopicPriorityModel();
76
            topicPriorityDto.mapInto(topicPriorityModel, this.getId());
77
            topicPriorityModelList.add(topicPriorityModel);
78
        }
79
80
        final List<IssueStandardQuestionTypeOptionModelInterface> questionTypeOptionModelList
81
                = new ArrayList<>(this.getQuestionTypeOptions().size());
82
83
        for (IssueStandardQuestionTypeOptionDto questionTypeOptionDto: this.getQuestionTypeOptions()) {
84
            final IssueStandardQuestionTypeOptionModelInterface questionTypeOptionModel
85
                    = new IssueStandardQuestionTypeOptionModel();
86
            questionTypeOptionDto.mapInto(questionTypeOptionModel, this.getId());
87
            questionTypeOptionModelList.add(questionTypeOptionModel);
88
        }
89
90
        issueStandardModel.setTimeLimit(this.getTimeLimit());
91
        issueStandardModel.setQuestionsNumber(this.getQuestionsNumber());
92
        issueStandardModel.setTopicPriorities(topicPriorityModelList);
93
        issueStandardModel.setQuestionTypeOptions(questionTypeOptionModelList);
94
        issueStandardModel.setSubject(new SubjectModelEmpty(this.getSubjectId()));
95
    }
96
}
97