001 // Copyright 2005 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014
015 package org.apache.tapestry.portlet;
016
017 import java.io.IOException;
018 import java.io.OutputStream;
019 import java.io.PrintWriter;
020
021 import javax.portlet.PortletResponse;
022
023 import org.apache.hivemind.util.Defense;
024 import org.apache.tapestry.util.ContentType;
025 import org.apache.tapestry.web.WebResponse;
026
027 /**
028 * Adapts {@link javax.portlet.PortletResponse} as {@link org.apache.tapestry.web.WebResponse}.
029 *
030 * @author Howard M. Lewis Ship
031 * @since 4.0
032 */
033 public class PortletWebResponse implements WebResponse
034 {
035 private final PortletResponse _portletResponse;
036
037 public PortletWebResponse(PortletResponse portletResponse)
038 {
039 Defense.notNull(portletResponse, "portletResponse");
040
041 _portletResponse = portletResponse;
042 }
043
044 public OutputStream getOutputStream(ContentType contentType) throws IOException
045 {
046 unsupported("getOutputStream");
047
048 return null;
049 }
050
051 public PrintWriter getPrintWriter(ContentType contentType) throws IOException
052 {
053 unsupported("getPrintWriter");
054
055 return null;
056 }
057
058 public String encodeURL(String url)
059 {
060 return _portletResponse.encodeURL(url);
061 }
062
063 /** Unsupported. */
064 public void reset()
065 {
066 unsupported("reset");
067 }
068
069 /** Unsupported. */
070 public void setContentLength(int contentLength)
071 {
072 unsupported("setContentLength");
073 }
074
075 /**
076 * Returns the empty string. The {@link RenderWebResponse} subclass actually provides a
077 * real value here.
078 */
079 public String getNamespace()
080 {
081 return "";
082 }
083
084 protected final void unsupported(String methodName)
085 {
086 throw new UnsupportedOperationException(PortletMessages.unsupportedMethod(methodName));
087 }
088
089 /** Unsupported. */
090 public void setDateHeader(String string, long date)
091 {
092 unsupported("setDateHeader");
093 }
094
095 /** Unsupported. */
096 public void setStatus(int status)
097 {
098 unsupported("setStatus");
099 }
100
101 /** Unsupported. */
102 public void setHeader(String name, String value)
103 {
104 unsupported("setHeader");
105 }
106
107 /** Unsupported. */
108 public void setIntHeader(String name, int value)
109 {
110 unsupported("setIntHeader");
111 }
112
113 /** Unsupported. */
114 public void sendError(int statusCode, String message) throws IOException
115 {
116 unsupported("sendError");
117 }
118
119 }