X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.server.core%2Fsrc%2Forg%2Fargeo%2Fserver%2Fmvc%2FSerializingView.java;fp=org.argeo.server.core%2Fsrc%2Forg%2Fargeo%2Fserver%2Fmvc%2FSerializingView.java;h=0000000000000000000000000000000000000000;hb=0a63088e055dcd5ff397ce4e98d008c62c84dc98;hp=b42a9a0d279300e6bad4e61bfcaa1ebaf662decc;hpb=202de2cb4c3eb2ea051a577c9105205ff3c28388;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.server.core/src/org/argeo/server/mvc/SerializingView.java b/org.argeo.server.core/src/org/argeo/server/mvc/SerializingView.java deleted file mode 100644 index b42a9a0d2..000000000 --- a/org.argeo.server.core/src/org/argeo/server/mvc/SerializingView.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.argeo.server.mvc; - -import java.util.Locale; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.argeo.ArgeoException; -import org.argeo.server.ServerAnswer; -import org.argeo.server.ServerSerializer; -import org.springframework.validation.BindingResult; -import org.springframework.web.servlet.View; -import org.springframework.web.servlet.view.AbstractView; - -/** - * Can be used as a standalone {@link View} or using - * {@link SerializingViewResolver} - */ -public class SerializingView extends AbstractView implements MvcConstants { - private final String viewName; - private final Locale locale; - - private ServerSerializer serializer; - - public SerializingView() { - this.viewName = null; - this.locale = Locale.getDefault(); - } - - public SerializingView(String viewName, Locale locale, - ServerSerializer serializer) { - this.viewName = viewName; - this.locale = locale; - this.serializer = serializer; - } - - @SuppressWarnings({ "rawtypes" }) - @Override - protected void renderMergedOutputModel(Map model, - HttpServletRequest request, HttpServletResponse response) - throws Exception { - Boolean serverAnswersAsHtml = model - .containsKey(ANSWER_MODEL_KEY_AS_HTML); - - final Object answer = findAnswerInModel(model); - - if ((answer instanceof ServerAnswer) && serverAnswersAsHtml) { - response.setContentType("text/html"); - ServerAnswer serverAnswer = (ServerAnswer) answer; - response.getWriter().append("
");
-			response.getWriter().append(serverAnswer.getMessage());
-			response.getWriter().append("
"); - } else { - serializer.serialize(answer, request, response); - } - } - - @SuppressWarnings("rawtypes") - 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 (viewName != null && 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."); - } - } - - public String getViewName() { - return viewName; - } - - public Locale getLocale() { - return locale; - } - - public void setSerializer(ServerSerializer serializer) { - this.serializer = serializer; - } - -}