Passed
Pull Request — dev (#396)
by
unknown
04:37
created

QuestionsMapper()   C

Complexity

Conditions 8

Size

Total Lines 76

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 76
rs 5.9187
cc 8

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
package easytests.api.v1.mappers;
2
3
import easytests.api.v1.models.AdminAnswer;
4
import easytests.api.v1.models.Identity;
5
import easytests.api.v1.models.Question;
6
import easytests.core.models.*;
7
import org.modelmapper.Converter;
8
import org.modelmapper.ModelMapper;
9
import org.modelmapper.PropertyMap;
10
import org.modelmapper.spi.MappingContext;
11
import org.springframework.stereotype.Service;
12
13
import java.util.ArrayList;
14
import java.util.List;
15
16
17
/**
18
 * @author RisaMagpie
19
 */
20
@Service("QuestionsMapperV1")
21
public class QuestionsMapper extends ModelMapper {
22
    public QuestionsMapper() {
23
        super();
24
        //-----------------------
25
        Converter<Identity, TopicModel> convertIdentityToTopicModel = new Converter<Identity, TopicModel>() {
26
            public TopicModel convert(MappingContext<Identity, TopicModel> context) {
27
                TopicModel topicModel = new TopicModel();
28
                topicModel.setId(context.getSource().getId());
29
30
                return topicModel;
31
            }
32
        };
33
34
        Converter<AdminAnswer, AnswerModel> convertAdminAnswerToAnswerModel = new Converter<AdminAnswer, AnswerModel>() {
0 ignored issues
show
Unused Code introduced by
Consider removing the unused local variable convertAdminAnswerToAnswerModel.
Loading history...
35
            public AnswerModel convert(MappingContext<AdminAnswer, AnswerModel> context) {
36
                AnswerModel answerModel = new AnswerModel();
37
                answerModel.setId(context.getSource().getId());
38
39
                return answerModel;
40
            }
41
        };
42
43
        Converter<AdminAnswer, AnswerModel> convertIdentityToAnswerModel = new Converter<AdminAnswer, AnswerModel>() {
0 ignored issues
show
Unused Code introduced by
Consider removing the unused local variable convertIdentityToAnswerModel.
Loading history...
44
            public AnswerModel convert(MappingContext<AdminAnswer, AnswerModel> context) {
45
                AnswerModel answerModel = new AnswerModel();
46
                answerModel.setId(context.getSource().getId());
47
48
                return answerModel;
49
            }
50
        };
51
52
        Converter<List<AdminAnswer>, List<AnswerModel>> convertAdminAnswerListToAnswerModelList
53
                = new Converter<List<AdminAnswer>, List<AnswerModel>>() {
54
            public List<AnswerModel> convert(MappingContext<List<AdminAnswer>, List<AnswerModel>> context) {
55
                /*List<AnswerModel> answerModels = new ArrayList<>();
56
                for (AdminAnswer adminAnswer: context.getSource()) {
57
                    answerModels.add();
58
                }*/
59
60
                List<AnswerModel> answerModels = new ArrayList<>();
61
                for (int i = 0; i < context.getSource().size(); ++i) {
62
                    AdminAnswer adminAnswer = context.getSource().get(i);
63
64
                    AnswerModel answerModel = new AnswerModel();
65
66
                    answerModel.setId(adminAnswer.getId());
67
                    answerModel.setRight(adminAnswer.getIsRight());
68
                    answerModel.setTxt(adminAnswer.getText());
69
                    answerModel.setSerialNumber(adminAnswer.getNumber());
70
71
                    answerModels.add(answerModel);
72
                }
73
                return answerModels;
74
            }
75
        };
76
77
        Converter<Integer, QuestionTypeModel> convertIntegerToQuestionTypeModel
78
                = new Converter<Integer, QuestionTypeModel>() {
79
            public QuestionTypeModel convert(MappingContext<Integer, QuestionTypeModel> context) {
80
                QuestionTypeModel questionTypeModel = new QuestionTypeModel();
81
                questionTypeModel.setId(context.getSource());
82
83
                return questionTypeModel;
84
            }
85
        };
86
87
        PropertyMap<Question, QuestionModel> mymap = new PropertyMap<Question, QuestionModel>() {
88
            protected void configure() {
89
                map(source.getId()).setId(null);
90
                map(source.getText()).setText(null);
91
                using(convertIntegerToQuestionTypeModel).map(source.getType()).setQuestionType(null);
92
                using(convertIdentityToTopicModel).map(source.getTopic()).setTopic(null);
93
                using(convertAdminAnswerListToAnswerModelList).map(source.getAnswers()).setAnswers(null);
94
            }
95
        };
96
97
        this.addMappings(mymap);
98
    }
99
}
100