/*
* Copyright (C) 2010-2012 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 java.io.Serializable;
import java.util.TreeMap;
import com.gallatinsystems.framework.gwt.dto.client.BaseDto;
public class QuestionOptionDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 6237222655812167675L;
private String text;
private String code;
private Integer order;
private Long questionId;
private TreeMap<String, TranslationDto> translationMap;
public TreeMap<String, TranslationDto> getTranslationMap() {
return translationMap;
}
public void setTranslationMap(TreeMap<String, TranslationDto> translationMap) {
this.translationMap = translationMap;
}
/**
* adds the translation to the translation map. If a translation already exists (based on
* language code), it will be replaced
*
* @param trans
*/
public void addTranslation(TranslationDto trans) {
if (translationMap == null) {
translationMap = new TreeMap<String, TranslationDto>();
}
translationMap.put(trans.getLangCode(), trans);
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
public String getText() {
return text;
}
/**
* returns the translated version of the text for the locale specified (if present). If no
* translation exists, it will return the default text.
*
* @param locale
* @return
*/
public String getLocalizedText(String locale) {
if (locale != null && translationMap != null) {
TranslationDto trans = translationMap.get(locale);
String txt = null;
if (trans != null) {
txt = trans.getText();
}
if (txt != null && txt.trim().length() > 0) {
return txt;
} else {
return this.text;
}
} else {
return this.text;
}
}
public void setText(String text) {
this.text = text;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Long getQuestionId() {
return questionId;
}
public void setQuestionId(Long questionId) {
this.questionId = questionId;
}
}