+ @SuppressWarnings("unchecked")
+ protected Object findAnswerInModel(Map model) {
+ if (model.size() == 1) {
+ return model.values().iterator().next();
+ } else if (model.size() == 2) {
+ boolean otherIsBindingResult = false;
+ Object answerValue = null;
+ for (Object value : model.values()) {
+ if (value instanceof BindingResult)
+ otherIsBindingResult = true;
+ else
+ answerValue = value;
+ }
+
+ if (otherIsBindingResult)
+ return answerValue;
+ }
+
+ if (model.containsKey(ANSWER_MODEL_KEY)) {
+ return model.get(ANSWER_MODEL_KEY);
+ } else if (model.containsKey(ANSWER_MODEL_KEY_AS_HTML)) {
+ return model.get(ANSWER_MODEL_KEY_AS_HTML);
+ } else if (model.containsKey(viewName)) {
+ return model.get(viewName);
+ } else {
+ if (model.size() == 0)
+ throw new ArgeoException("Model is empty.");
+ else
+ throw new ArgeoException(
+ "Model has a size different from 1. Specify a modelKey.");
+ }
+ }
+