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
029 * {@link org.apache.tapestry.web.WebResponse}.
030 *
031 * @author Howard M. Lewis Ship
032 * @since 4.0
033 */
034 public class PortletWebResponse implements WebResponse
035 {
036
037 private final PortletResponse _portletResponse;
038
039 public PortletWebResponse(PortletResponse portletResponse)
040 {
041 Defense.notNull(portletResponse, "portletResponse");
042
043 _portletResponse = portletResponse;
044 }
045
046 public OutputStream getOutputStream(ContentType contentType)
047 throws IOException
048 {
049 unsupported("getOutputStream");
050
051 return null;
052 }
053
054 public PrintWriter getPrintWriter(ContentType contentType)
055 throws IOException
056 {
057 unsupported("getPrintWriter");
058
059 return null;
060 }
061
062 public String encodeURL(String url)
063 {
064 return _portletResponse.encodeURL(url);
065 }
066
067 /** Unsupported. */
068 public void reset()
069 {
070 unsupported("reset");
071 }
072
073 /** Unsupported. */
074 public void setContentLength(int contentLength)
075 {
076 unsupported("setContentLength");
077 }
078
079 /**
080 * Returns the empty string. The {@link RenderWebResponse} subclass
081 * actually provides a real value here.
082 */
083 public String getNamespace()
084 {
085 return "";
086 }
087
088 protected final void unsupported(String methodName)
089 {
090 throw new UnsupportedOperationException(PortletMessages
091 .unsupportedMethod(methodName));
092 }
093
094 /** Unsupported. */
095 public void setDateHeader(String string, long date)
096 {
097 unsupported("setDateHeader");
098 }
099
100 /** Unsupported. */
101 public void setStatus(int status)
102 {
103 unsupported("setStatus");
104 }
105
106 /** Unsupported. */
107 public void setHeader(String name, String value)
108 {
109 unsupported("setHeader");
110 }
111
112 /** Unsupported. */
113 public void setIntHeader(String name, int value)
114 {
115 unsupported("setIntHeader");
116 }
117
118 /** Unsupported. */
119 public void sendError(int statusCode, String message)
120 throws IOException
121 {
122 unsupported("sendError");
123 }
124
125 }