javax.portlet.PortletResponse Maven / Gradle / Ivy
Show all versions of portlet-api Show documentation
/* 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.
*/
/*
* This source code implements specifications defined by the Java
* Community Process. In order to remain compliant with the specification
* DO NOT add / change / or delete method signatures!
*/
package javax.portlet;
import java.util.Collection;
/**
* The
* PortletResponse
defines the base interface to assist a
* portlet in creating and sending a response to the client. The portlet
* container uses specialized versions of this interface when invoking a
* portlet.
* The portlet container creates these objects and passes them as arguments to
* the portlet's processAction, processEvent, serveResource
and render
methods.
*
* @see ActionResponse
* @see RenderResponse
* @see EventResponse
* @see ResourceResponse
*/
public interface PortletResponse {
/**
* Adds a String property to an existing key to be returned to the portal.
* If there are no property values already associated with the key,
* a new key is created.
*
* 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.
*
* @param key
* the key of the property to be returned to the portal
* @param value
* 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).
*
*
* @exception java.lang.IllegalArgumentException
* if key is null
.
*/
public void addProperty(String key, String value);
/**
* Sets a String property to be returned to the portal.
*
* 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.
*
* @param key
* the key of the property to be returned to the portal
* @param value
* 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).
*
*
* @exception java.lang.IllegalArgumentException
* if key is null
.
*/
public void setProperty(String key, String value);
/**
* Returns the encoded URL of the resource, like servlets, JSPs, images and
* other static files, at the given path.
*
* 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.
*
* @param 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
).
*
* @exception java.lang.IllegalArgumentException
* if path doesn't have a leading slash or is not an absolute
* URL
*
* @return the encoded resource URL as string, may not be a valid URL
*/
public String encodeURL(String path);
/**
* 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.
*
* The namespace value must be constant for the lifetime of the portlet
* window.
*
* @return the namespace
*/
public String getNamespace();
/**
* 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.
*
* This method allows response properties to have multiple cookies.
*
*
* @param cookie the cookie to be added to the response
*
* @exception java.lang.IllegalArgumentException
* if cookie is null
.
* @since 2.0
*/
public void addProperty(javax.servlet.http.Cookie cookie);
/**
* Adds an XML DOM element property to the response.
*
* 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.
*
* @param key
* the key of the property to be returned to the portal
* @param element
* the XML DOM element to be added to the response
*
* @exception java.lang.IllegalArgumentException
* if key is null
.
* @since 2.0
*/
void addProperty(String key, org.w3c.dom.Element element);
/**
* Creates an element of the type specified to be used in the
* {@link #addProperty(String,Element)} method.
*
* @param tagName name of the element type to instantiate
* @return A new Element object with the nodeName attribute set to tagName,
* and localName, prefix, and namespaceURI set to null.
* @throws org.w3c.dom.DOMException
* INVALID_CHARACTER_ERR: Raised if the specified name
* contains an illegal character.
*/
org.w3c.dom.Element createElement(String tagName) throws org.w3c.dom.DOMException;
/**
*
* Gets the value of the response property with the given name.
*
* 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)
.
*
*
* @param key the name of the response property whose value is to be returned
* @return the value of the response property with the given name, or null if
* no property with the given name has been set on this response
*
* @since 3.0
*/
String getProperty(String key);
/**
*
* Gets the values of the response property with the given name.
*
* 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.
*
*
* @param key the name of the response property whose values are to be returned
* @return the values of the response property with the given name, or an empty collection if
* no property with the given name has been set on this response
*
* @since 3.0
*/
Collection getPropertyValues(String key);
/**
*
* Gets the names of all response properties set on the response.
*
* 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.
*
*
* @return the names of the response properties with the given name,
* or an empty collection if no properties have been set on this response
*
* @since 3.0
*/
Collection getPropertyNames();
}