/*
* Copyright (C) 2017 Stichting Akvo (Akvo Foundation)
*
* This file is part of Akvo FLOW.
*
* Akvo FLOW is free software: you can redistribute it and modify it under the terms of
* the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
* either version 3 of the License or any later version.
*
* Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License included below for more details.
*
* The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
*/
package org.waterforpeople.mapping.app.gwt.client.survey;
import com.gallatinsystems.survey.domain.Question;
import org.springframework.beans.BeanUtils;
import javax.annotation.Nullable;
import java.util.*;
public class QuestionDtoMapper {
@Nullable
public QuestionDto transform(Question question) {
if (question != null) {
QuestionDto questionDto = new QuestionDto();
String[] questionPropertiesNonExistingInQuestionDto = {
"key",
"type",
"createdDateTime",
"lastUpdateDateTime",
"lastUpdateUserId",
"createUserId",
"ancestorIds",
"translationMap",
"questionOptionMap",
"questionHelpMediaMap",
"scoringRules",
"sourceQuestionId",
"referenceId"
};
BeanUtils.copyProperties(question, questionDto,
questionPropertiesNonExistingInQuestionDto);
if (question.getType() != null) {
questionDto.setType(QuestionDto.QuestionType.valueOf(question.getType()
.toString()));
}
questionDto.setKeyId(question.getKey().getId());
return questionDto;
} else {
return null;
}
}
public List<QuestionDto> transform(List<Question> questions) {
int size = questions == null ? 0 : questions.size();
List<QuestionDto> questionDtos = new ArrayList<>(size);
if (questions != null) {
for (Question question : questions) {
QuestionDto questionDto = transform(question);
if (questionDto != null) {
questionDtos.add(questionDto);
}
}
}
return questionDtos;
}
}