public class PortletResponseWrapper extends Object implements PortletResponse
PortletResponseWrapper
provides a convenient
implementation of the PortletResponse
interface and is extended by other response wrappers. This class
implements the Wrapper or Decorator pattern. Methods default to calling through to the wrapped response object.PortletResponse
Constructor and Description |
---|
PortletResponseWrapper(PortletResponse response)
Creates an
ActionResponse adaptor wrapping the given response object. |
Modifier and Type | Method and Description |
---|---|
void |
addProperty(javax.servlet.http.Cookie cookie)
Adds a HTTP Cookie property to the response.
The portlet should note that the cookie may not make it to the client, but may be stored at the portal. |
void |
addProperty(String key,
Element element)
Adds an XML DOM element property to the response.
|
void |
addProperty(String key,
String value)
Adds a String property to an existing key to be returned to the portal.
|
Element |
createElement(String tagName)
Creates an element of the type specified to be used in the
PortletResponse.addProperty(String,Element) method. |
String |
encodeURL(String path)
Returns the encoded URL of the resource, like servlets, JSPs, images and
other static files, at the given path.
|
String |
getNamespace()
The value returned by this method should be prefixed or appended to
elements, such as JavaScript variables or function names, to ensure they
are unique in the context of the portal page.
|
String |
getProperty(String key)
Gets the value of the response property with the given name.
|
Collection<String> |
getPropertyNames()
Gets the names of all response properties set on the response.
|
Collection<String> |
getPropertyValues(String name)
Gets the values of the response property with the given name.
|
PortletResponse |
getResponse()
Return the wrapped response object.
|
void |
setProperty(String key,
String value)
Sets a String property to be returned to the portal.
|
void |
setResponse(PortletResponse response)
Sets the response object being wrapped.
|
public PortletResponseWrapper(PortletResponse response)
ActionResponse
adaptor wrapping the given response object.response
- the action response to wrapIllegalArgumentException
- if the response is null
public void addProperty(String key, String value)
PortletResponse
This method allows response properties to have multiple values.
Response properties can be viewed as header values set for the portal application. If these header values are intended to be transmitted to the client they should be set before the response is committed.
addProperty
in interface PortletResponse
key
- the key of the property to be returned to the portalvalue
- the value of the property to be returned to the portal.
The value should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt).
public String encodeURL(String path)
PortletResponse
Portlets should encode all resource URLs pointing to resources in the portlet application via this method in order to ensure that they get served via the portal application.
Some portal/portlet-container implementation may require those URLs to contain implementation specific data encoded in it. Because of that, portlets should use this method to create such URLs.
The encodeURL
method may include the session ID and other
portal/portlet-container specific information into the URL. If encoding
is not needed, it returns the URL unchanged.
Portlet developer should be aware that the returned URL might not be a well formed URL but a special token at the time the portlet is generating its content. Thus portlets should not add additional parameters on the resulting URL or expect to be able to parse the URL. As a result, the outcome of the encodeURL call may be different than calling encodeURL in the servlet world.
encodeURL
in interface PortletResponse
path
- the URI path to the resource. This must be either an absolute
URL (e.g.
http://my.co/myportal/mywebap/myfolder/myresource.gif
)
or a full path URI (e.g.
/myportal/mywebap/myfolder/myresource.gif
).public String getNamespace()
PortletResponse
The namespace value must be constant for the lifetime of the portlet window.
getNamespace
in interface PortletResponse
public void setProperty(String key, String value)
PortletResponse
Response properties can be viewed as header values set for the portal application. If these header values are intended to be transmitted to the client they should be set before the response is committed.
This method resets all properties previously added with the same key.
setProperty
in interface PortletResponse
key
- the key of the property to be returned to the portalvalue
- the value of the property to be returned to the portal.
The value should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt).
public PortletResponse getResponse()
public void setResponse(PortletResponse response)
response
- the response to setIllegalArgumentException
- if the response is null.public void addProperty(String key, Element element)
PortletResponse
If a DOM element with the provided key already exists the provided element will be stored in addition to the existing element under the same key.
If the element is null
the key is removed from
the response.
Response XML DOM element properties can be viewed as additional response document sections set for the portal application. If these header values are intended to be transmitted to the client they should be set before the response is committed.
addProperty
in interface PortletResponse
key
- the key of the property to be returned to the portalelement
- the XML DOM element to be added to the responsepublic Element createElement(String tagName)
PortletResponse
PortletResponse.addProperty(String,Element)
method.createElement
in interface PortletResponse
tagName
- name of the element type to instantiatepublic void addProperty(javax.servlet.http.Cookie cookie)
PortletResponse
This method allows response properties to have multiple cookies.
addProperty
in interface PortletResponse
cookie
- the cookie to be added to the responsepublic String getProperty(String key)
PortletResponse
If a response property with the given name exists and contains multiple values, the value that was added first will be returned.
This method considers only response properties set or added via
setProperty(java.lang.String, java.lang.String)
or
addProperty(java.lang.String, java.lang.String)
.
getProperty
in interface PortletResponse
key
- the name of the response property whose value is to be returnedpublic Collection<String> getPropertyValues(String name)
PortletResponse
This method considers only response properties set or added via
setProperty(java.lang.String, java.lang.String)
or
addProperty(java.lang.String, java.lang.String)
.
Altering the returned collection will not affect the properties set on the response.
getPropertyValues
in interface PortletResponse
name
- the name of the response property whose values are to be returnedpublic Collection<String> getPropertyNames()
PortletResponse
This method considers only response properties set or added via
setProperty(java.lang.String, java.lang.String)
or
addProperty(java.lang.String, java.lang.String)
.
Altering the returned collection will not affect the properties set on the response.
getPropertyNames
in interface PortletResponse
Java Portlet 3.0 API Specification. See the Copyright and License provided with this distribution. Use is subject to license terms.