QuestionAndAnswers.java :  » Portal » Open-Portal » com » sun » portal » app » collab » survey » faces » Java Open Source

Java Open Source » Portal » Open Portal 
Open Portal » com » sun » portal » app » collab » survey » faces » QuestionAndAnswers.java
package com.sun.portal.app.collab.survey.faces;

import com.sun.portal.app.collab.survey.model.SurveyException;
import java.beans.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.StringTokenizer;

import com.sun.web.ui.model.Option;

import com.sun.portal.app.collab.survey.model.QuestionModel;
import com.sun.portal.app.collab.survey.model.AnswerModel;
import com.sun.portal.app.collab.survey.util.SurveyUtil;
import com.sun.portal.app.collab.survey.util.Resources;

import com.sun.portal.log.common.PortalLogger;
import java.util.logging.Logger;

/**
 * @author bshankar@sun.com
 */
public class QuestionAndAnswers {

    private QuestionModel m = null;
    private String questionOrder = null;
    private int questionId;
    
    private String questionText = null;
    
    private static Logger logger = PortalLogger.getLogger(QuestionAndAnswers.class);
    /**
     * This array list is used as -
     */
    private String answerString = null;
    private ArrayList answers = null;
    
    private boolean isMandatory = false;
    
    private boolean isSingleChoice = true;
    
    private boolean isOpen = false;
    
    public QuestionAndAnswers() {
    }
    
    public QuestionAndAnswers(QuestionModel m) {
        this.m = m;
    }
    
    public void init() throws SurveyException {
        
        if(m == null)
            return;
        
        AnswerModel ans[] = m.getAnswers();
        
        boolean hasAnswers = true;
        
        isOpen = m.isOpen();
        
        if (ans == null || ans.length == 0) {
            hasAnswers = false;
            isOpen = true;
        }
        
        questionId = m.getQuestionId();
        questionOrder = String.valueOf(m.getQuestionOrder());
        questionText = m.getQuestionText();
        
        answers = new ArrayList();
        
        for(int i=0; hasAnswers && i < ans.length; i++) {
            answers.add(new Option(String.valueOf(((AnswerModel)ans[i]).getAnswerId()), ((AnswerModel)ans[i]).getAnswerText()));
        }
        
        if(isOpen && hasAnswers) {
            answers.add(new Option("", new Resources().getString("OtherSpecify")));
        }
        
        isSingleChoice = !(m.isMultiselect());
        isMandatory = m.isMandatory();
        
    }
    
    public int getQuestionId() {
        return questionId;
    }
    
    public String getQuestionOrder() {
        return questionOrder;
    }
    
    public void setQuestionOrder(String val) {
        questionOrder = val;
    }
    
    public String getQuestionText() {
        if(new SurveyUtil().isSurvey()) {
            return questionOrder + ". " + questionText;
        }
        return questionText;
    }
    
    public String getQuestion() {
        return questionText;
    }
    
    public void setQuestion(String val) {
        questionText = val;
    }
    
    public ArrayList getAnswers() {
        return answers;
    }
    
    public String getAnswersAsString() {
        return answerString;
    }
    
    public String[] getAnswersAsStringArray() {
        if(answerString != null) {
            StringTokenizer st = new StringTokenizer(answerString,"\n");
            String[] val = new String[st.countTokens()];
            for(int i=0; st.hasMoreTokens(); i++) {
                val[i] = st.nextToken();
            }
            return val;
        }
        return null;
    }
    
    public void setAnswers(ArrayList val) {
        answers = new ArrayList();
        answerString = new String();
        if(val != null) {
            for(int i=0; i < val.size(); i++) {
                String ans = (String)val.get(i);
                answers.add(new Option(String.valueOf(i+1), ans));
                answerString = answerString.concat(ans);
                if (i+1 < val.size()) {
                    answerString = answerString.concat("\n");
                }
            }
        }
    }
    
    public void setAnswers(ArrayList val, boolean isOpen) {
        setAnswers(val);
        
        /**
         * Is the question is open, add "Other (please specify)" option.
         */
        if(isOpen) {
            answers.add(new Option("",new Resources().getString("OtherSpecify")));
        }
    }
    
    public boolean getIsMandatory() {
        return isMandatory;
    }
    
    public void setIsMandatory(boolean val) {
        isMandatory = val;
    }
    
    public boolean getSingleChoice() {
        return isSingleChoice;
    }
    
    public void setSingleChoice(boolean val) {
        isSingleChoice = val;
    }
    
    public boolean getMultiChoice() {
        return !isSingleChoice;
    }
    
    public void setMultiChoice(boolean val) {
        setSingleChoice(!val);
    }
    
    public boolean getIsOpen() {
        return isOpen;
    }
    
    public void setIsOpen(boolean val) {
        isOpen = val;
    }
    
    private String selectedAnswer = null;
    
    public String getSelectedAnswer() {
        return selectedAnswer;
    }
    
    public void setSelectedAnswer(String val) {
        if (val == null) {
            return;
        }
        selectedAnswer = (String)val;
        logger.fine("Question = " + questionText + ", selected answer = " + selectedAnswer);
    }
    
    private String[] selectedAnswers = null;
    
    public void setSelectedAnswers(Object[] val) {
        if(val != null) {
            selectedAnswers = new String[val.length];
            for(int i=0; i<val.length; i++) {
                selectedAnswers[i] = (String)val[i];
                logger.fine("Question = " + questionText + ", selected answer[" + i + "] = " + selectedAnswers[i]);
            }
            
        }
    }
    
    public Object[] getSelectedAnswers() {
        return selectedAnswers;
    }
    
    private String customAnswer;
    
    public String getCustomAnswer() {
        return customAnswer;
    }
    
    public void setCustomAnswer(String val) {
        customAnswer = val;
        logger.fine("Question = " + questionText + ", selected answer = " + customAnswer);
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.