blob: 18a00a296a321ad7961f1597939a9de5015d4171 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.cocoon.environment.portlet;
import javax.portlet.PortletPreferences;
import javax.portlet.PortletURL;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Locale;
/**
* Implements the {@link org.apache.cocoon.environment.Response} interface for
* the JSR-168 (Portlet) environment.
*
* @author <a href="mailto:alex.rudnev@dc.gov">Alex Rudnev</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
* @version CVS $Id$
*/
public final class RenderResponse extends PortletResponse {
private String contentType = null;
/**
* Creates a RenderResponse based on a real RenderResponse object
*/
protected RenderResponse(javax.portlet.RenderResponse response,
PortletPreferences preferences) {
super(response, preferences);
}
public String getCharacterEncoding() {
return getRenderResponse().getCharacterEncoding();
}
public Locale getLocale() {
return getRenderResponse().getLocale();
}
/**
*
* @see PortletEnvironment#HEADER_PORTLET_TITLE
*/
public void addHeader(String name, String value) {
if (PortletEnvironment.HEADER_PORTLET_TITLE.equals(name)) {
getRenderResponse().setTitle(value);
} else {
super.addHeader(name, value);
}
}
/**
*
* @see PortletEnvironment#HEADER_PORTLET_TITLE
*/
public void setHeader(String name, String value) {
if (PortletEnvironment.HEADER_PORTLET_TITLE.equals(name)) {
getRenderResponse().setTitle(value);
} else {
super.setHeader(name, value);
}
}
// RenderResponse API related methods
/**
* Type cast portletResponse to RenderResponse
*
* @return type casted portletResponse
*/
public javax.portlet.RenderResponse getRenderResponse() {
return (javax.portlet.RenderResponse) getPortletResponse();
}
public PortletURL createActionURL() {
return getRenderResponse().createActionURL();
}
public PortletURL createRenderURL() {
return getRenderResponse().createRenderURL();
}
public void flushBuffer() throws IOException {
getRenderResponse().flushBuffer();
}
public int getBufferSize() {
return getRenderResponse().getBufferSize();
}
public String getContentType() {
return getRenderResponse().getContentType();
}
public String getNamespace() {
return getRenderResponse().getNamespace();
}
public OutputStream getPortletOutputStream() throws IOException {
return getRenderResponse().getPortletOutputStream();
}
public PrintWriter getWriter() throws IOException {
return getRenderResponse().getWriter();
}
public boolean isCommitted() {
return getRenderResponse().isCommitted();
}
public void reset() {
getRenderResponse().reset();
}
public void resetBuffer() {
getRenderResponse().resetBuffer();
}
public void setBufferSize(int size) {
getRenderResponse().setBufferSize(size);
}
public void setContentType(String type) {
this.contentType = type;
getRenderResponse().setContentType(type);
}
public void setTitle(String title) {
getRenderResponse().setTitle(title);
}
// Portlet Environment related methods
OutputStream getOutputStream() throws IOException {
// TODO: Why this is needed? What's the purpose?
if (this.contentType == null) {
setContentType("text/html");
}
return getRenderResponse().getPortletOutputStream();
}
}