                        (UncastData. string-value))
           response (.answerQuestion entry-controller value)]
       (cond
-        (= response FormEntryController/ANSWER_OK) (.stepToNextEvent entry-controller)
+        (and move-forward? (= response FormEntryController/ANSWER_OK)) (.stepToNextEvent entry-controller)
         (= response FormEntryController/ANSWER_REQUIRED_BUT_EMPTY) (println "Answer is required")
         (= response FormEntryController/ANSWER_CONSTRAINT_VIOLATED) (println (.getConstraintText entry-prompt))))
     (catch Exception e

           [org.javarosa.core.model Constants]
           [org.javarosa.core.model.data AnswerDataFactory SelectMultiData UncastData]))

(defn set-question-answer [entry-controller string-value]
  (try
    (let [entry-prompt (.getQuestionPrompt (.getModel entry-controller))
          value (.cast (AnswerDataFactory/template


;; FormEntryController String -> NavAction
(defn answer-question [entry-controller user-input]
  "Answer's current question with user input. Returns :finish to process form,
  :exit to quit form, :forward to next question"
  (let [event (.getEvent (.getModel entry-controller))]
    (cond
      (= event FormEntryController/EVENT_BEGINNING_OF_FORM) (do (.stepToNextEvent entry-controller) :forward)
