save(List,IssueStandardsOptionsInterface)   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
dl 0
loc 6
rs 10
1
package easytests.core.services;
2
3
import easytests.core.entities.*;
4
import easytests.core.mappers.IssueStandardsMapper;
5
import easytests.core.models.IssueStandardModel;
6
import easytests.core.models.IssueStandardModelInterface;
7
import easytests.core.models.SubjectModelInterface;
8
import easytests.core.options.IssueStandardsOptionsInterface;
9
import easytests.core.services.exceptions.DeleteUnidentifiedModelException;
10
import java.util.ArrayList;
11
import java.util.List;
12
import org.springframework.beans.factory.annotation.Autowired;
13
import org.springframework.stereotype.Service;
14
15
/**
16
 * @author SingularityA
17
 */
18
@Service
19
public class IssueStandardsService implements IssueStandardsServiceInterface {
20
21
    @Autowired
22
    private IssueStandardsMapper issueStandardsMapper;
23
24
    @Autowired
25
    private IssueStandardTopicPrioritiesService topicPrioritiesService;
26
27
    @Autowired
28
    private IssueStandardQuestionTypeOptionsService questionTypeOptionsService;
29
30
    @Autowired
31
    private SubjectsService subjectsService;
32
33
    @Override
34
    public List<IssueStandardModelInterface> findAll() {
35
        return this.map(this.issueStandardsMapper.findAll());
36
    }
37
38
    @Override
39
    public List<IssueStandardModelInterface> findAll(IssueStandardsOptionsInterface issueStandardsOptions) {
40
        return this.withServices(issueStandardsOptions).withRelations(this.findAll());
41
    }
42
43
    @Override
44
    public IssueStandardModelInterface find(Integer id) {
45
        final IssueStandardEntity issueStandardEntity = this.issueStandardsMapper.find(id);
46
        if (issueStandardEntity == null) {
47
            return null;
48
        }
49
        return this.map(issueStandardEntity);
50
    }
51
52
    @Override
53
    public IssueStandardModelInterface find(Integer id, IssueStandardsOptionsInterface issueStandardsOptions) {
54
        return this.withServices(issueStandardsOptions).withRelations(this.find(id));
55
    }
56
57
    @Override
58
    public IssueStandardModelInterface findBySubject(SubjectModelInterface subject) {
59
        final IssueStandardEntity issueStandardEntity = this.issueStandardsMapper.findBySubjectId(subject.getId());
60
        if (issueStandardEntity == null) {
61
            return null;
62
        }
63
        return this.map(issueStandardEntity);
64
    }
65
66
    @Override
67
    public IssueStandardModelInterface findBySubject(SubjectModelInterface subjectModel,
68
                                                     IssueStandardsOptionsInterface issueStandardsOptions) {
69
        return this.withServices(issueStandardsOptions).withRelations(this.findBySubject(subjectModel));
70
    }
71
72
    @Override
73
    public void save(IssueStandardModelInterface issueStandardModel) {
74
        final IssueStandardEntity issueStandardEntity = this.map(issueStandardModel);
75
        if (issueStandardEntity.getId() != null) {
76
            this.issueStandardsMapper.update(issueStandardEntity);
77
            return;
78
        }
79
        this.issueStandardsMapper.insert(issueStandardEntity);
80
        issueStandardModel.setId(issueStandardEntity.getId());
81
    }
82
83
    @Override
84
    public void save(List<IssueStandardModelInterface> issueStandardModels) {
85
        for (IssueStandardModelInterface issueStandardModel: issueStandardModels) {
86
            this.save(issueStandardModel);
87
        }
88
    }
89
90
    @Override
91
    public void save(IssueStandardModelInterface issueStandardModel,
92
                     IssueStandardsOptionsInterface issueStandardsOptions) {
93
94
        this.withServices(issueStandardsOptions).saveWithRelations(issueStandardModel);
95
    }
96
97
    @Override
98
    public void save(List<IssueStandardModelInterface> issueStandardModels,
99
                     IssueStandardsOptionsInterface issueStandardsOptions) {
100
101
        for (IssueStandardModelInterface issueStandardModel: issueStandardModels) {
102
            this.save(issueStandardModel, issueStandardsOptions);
103
        }
104
105
    }
106
107
    @Override
108
    public void delete(IssueStandardModelInterface issueStandardModel) {
109
        final IssueStandardEntity issueStandardEntity = this.map(issueStandardModel);
110
        if (issueStandardEntity.getId() == null) {
111
            throw new DeleteUnidentifiedModelException();
112
        }
113
        this.issueStandardsMapper.delete(issueStandardEntity);
114
    }
115
116
    @Override
117
    public void delete(List<IssueStandardModelInterface> issueStandardModels) {
118
        for (IssueStandardModelInterface issueStandardModel: issueStandardModels) {
119
            this.delete(issueStandardModel);
120
        }
121
    }
122
123
    @Override
124
    public void delete(IssueStandardModelInterface issueStandardModel,
125
                       IssueStandardsOptionsInterface issueStandardsOptions) {
126
127
        this.withServices(issueStandardsOptions).deleteWithRelations(issueStandardModel);
128
    }
129
130
    @Override
131
    public void delete(List<IssueStandardModelInterface> issueStandardModels,
132
                       IssueStandardsOptionsInterface issueStandardsOptions) {
133
134
        for (IssueStandardModelInterface issueStandardModel: issueStandardModels) {
135
            this.delete(issueStandardModel, issueStandardsOptions);
136
        }
137
    }
138
139
    private IssueStandardsOptionsInterface withServices(IssueStandardsOptionsInterface issueStandardsOptions) {
140
        issueStandardsOptions.setIssueStandardsService(this);
141
        issueStandardsOptions.setTopicPrioritiesService(this.topicPrioritiesService);
142
        issueStandardsOptions.setQuestionTypeOptionsService(this.questionTypeOptionsService);
143
        issueStandardsOptions.setSubjectsService(this.subjectsService);
144
        return issueStandardsOptions;
145
    }
146
147
    private IssueStandardModelInterface map(IssueStandardEntity issueStandardEntity) {
148
        final IssueStandardModelInterface issueStandardModel = new IssueStandardModel();
149
        issueStandardModel.map(issueStandardEntity);
150
        return issueStandardModel;
151
    }
152
153
    private IssueStandardEntity map(IssueStandardModelInterface issueStandardModel) {
154
        final IssueStandardEntity issueStandardEntity = new IssueStandardEntity();
155
        issueStandardEntity.map(issueStandardModel);
156
        return issueStandardEntity;
157
    }
158
159
    private List<IssueStandardModelInterface> map(List<IssueStandardEntity> issueStandardEntities) {
160
        final List<IssueStandardModelInterface> issueStandardModels = new ArrayList<>(issueStandardEntities.size());
161
        for (IssueStandardEntity issueStandardEntity: issueStandardEntities) {
162
            issueStandardModels.add(this.map(issueStandardEntity));
163
        }
164
        return issueStandardModels;
165
    }
166
}
167