All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.portlet.BaseURL Maven / Gradle / Ivy

Go to download

The Java Portlet API version 3.0 developed by the Java Community Process JSR-362 Expert Group.

There is a newer version: 3.0.1
Show newest version
/*  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;

/**
 * 
The * BaseURL defines the basic capabilities of a portlet URL * pointing back to the portlet. *

* If the render state is modified through this interface, the changes take * effect when the URL containing the modifications is triggered. *

* @see MutableRenderState * @since 2.0 */ public interface BaseURL extends RenderState { /** * Sets * the given String parameter on this URL. *

* This method replaces all parameter values with the given key, * as allowed * according to the rules for the URL. *

*
    *
  • * RenderURL - Both public and private parameters can be set. *
  • *
  • * ActionURL - Action parameters (private parameters) are set as described. * Public render parameters * remain unchanged. If an action parameter has the same name as a public * render parameter, both the action parameter value and the public render parameter * value will be available during processing of the action request. *
  • *
  • * ResourceURL - Resource parameters are set. Public * and private render parameters that were attached to the URL when it was created * remain unchanged. * If a resource parameter has the same name as a public or private * render parameter, both the resource parameter value and the public or private * render parameter value will be available during processing of the resource request. *
  • *
*
*

* The PortletURL implementation 'x-www-form-urlencoded' encodes * all parameter names and values. Developers should not encode them. *

* A portlet container may prefix the attribute names internally * in order to preserve a unique namespace for the portlet. *

* A parameter value of null indicates that this * parameter should be removed. * However, an empty string value ("") is allowed. *

* A public render parameter cannot be removed by * setting its value to null. * * @param name * the parameter name * @param value * the parameter value * * @exception java.lang.IllegalArgumentException * if name is null; * if an attempt is made to set a public * render parameter to null. * @deprecated As of version 3.0. Use {@link PortletURL#getRenderParameters()}, * {@link ResourceURL#getResourceParameters()}, * or {@link ActionURL#getActionParameters()} as required. */ @Deprecated public void setParameter (String name, String value); /** * Sets * a multi-valued String parameter on this URL. *

*

* This method replaces all parameter values with the given key * according to the rules for the URL. *

    *
  • * RenderURL - Both public and private parameters can be set. *
  • *
  • * ActionURL - Action parameters (private parameters) are set as described. * Public render parameters * remain unchanged. If an action parameter has the same name as a public * render parameter, both the action parameter value and the public render parameter * value will be available during processing of the action request. *
  • *
  • * ResourceURL - Resource parameters are set. Public * and private render parameters that were attached to the URL when it was created * remain unchanged. * If a resource parameter has the same name as a public or private * render parameter, both the resource parameter value and the public or private * render parameter value will be available during processing of the resource request. *
  • *
*
*

* The PortletURL implementation 'x-www-form-urlencoded' encodes * all parameter names and values. Developers should not encode them. *

* A portlet container may prefix the attribute names internally * in order to preserve a unique namespace for the portlet. *

*

* A values parameter of null indicates that this * parameter should be removed. *

* If the values parameter is not null, no element of the values array may be null. * However, an empty string value ("") is allowed. *

* * @param name * the parameter name * @param values * the parameter values * * @exception java.lang.IllegalArgumentException * if name is null; * if an element of the values array is null; * if an attempt is made to set a public render parameter to null. * * @deprecated As of version 3.0. Use {@link PortletURL#getRenderParameters()}, * {@link ResourceURL#getResourceParameters()}, * or {@link ActionURL#getActionParameters()} as required. */ @Deprecated public void setParameter (String name, String... values); /** * Sets * a parameter map for this URL. *

* All previously set parameters are cleared. *

*

* This method can be used to set both public and private render parameters * according to the rules for the URL. *

    *
  • * RenderURL - Both public and private parameters can be set. *
  • *
  • * ActionURL - Action parameters are set. Public render parameters * remain unchanged. If an action parameter has the same name as a public * render parameter, both the action parameter value and the public render parameter * value will be available during processing of the action request. *
  • *
  • * ResourceURL - Resource parameters are set. Public * and private render parameters that were attached to the URL when it was created * remain unchanged. * If a resource parameter has the same name as a public or private * render parameter, both the resource parameter value and the public or private * render parameter value will be available during processing of the resource request. *
  • *
*

* These parameters will be accessible through the portlet request initiated through * the URL. *

* Any previously set private render parameter that is not contained in the new map * is removed. However, public render parameters cannot be removed by excluding * them from the map. Public render parameters that are not included in the map * remain unchanged. *

*

* The PortletURL implementation 'x-www-form-urlencoded' encodes * all parameter names and values. Developers should not encode them. *

* A portlet container may prefix the attribute names internally, * in order to preserve a unique namespace for the portlet. * * @param parameters * * Map containing parameter names for the render phase as keys and * parameter values as map values. The keys in the parameter map must be of type * String and may not be null or the empty string (""). The values in the parameter * map must be of type String array (String[]). * Neither the values array nor any of * its elements may be null; however, the empty string ("") is allowed as an array element. * * * @exception java.lang.IllegalArgumentException * * if parameters is null, if any of the * keys in the Map are null, if any of * the keys is not a String, if any of the values is not a * String array, or if any of the String array elements * are null. * * * @deprecated As of version 3.0. Use {@link PortletURL#getRenderParameters()}, * {@link ResourceURL#getResourceParameters()}, * or {@link ActionURL#getActionParameters()} as required. */ @Deprecated public void setParameters(java.util.Map parameters); /** * Indicates the security setting for this URL. *

* Secure set to true indicates that the portlet requests * a secure connection between the client and the portlet window for * this URL. Secure set to false indicates that the portlet * does not need a secure connection for this URL. If the security is not * set for a URL, it should stay the same as the current request. * * @param secure true, if portlet requests to have a secure connection * between its portlet window and the client; false, if * the portlet does not require a secure connection. * * @throws PortletSecurityException if the run-time environment does * not support the indicated setting */ public void setSecure (boolean secure) throws PortletSecurityException; /** * Returns the portlet URL string representation to be embedded in the * markup.
* Note that the returned String may not be a valid URL, as it may * be rewritten by the portal/portlet-container before returning the * markup to the client. *

* The returned URL is not XML escaped. *

* For writing URLs to an output stream the {@link #write(java.io.Writer)} or * {@link #write(java.io.Writer, boolean)} method should be used as these are * more efficient. * * @return the encoded URL as a string */ public String toString (); /** * Returns a * Map of the parameters currently set on this portlet * URL. *

* The values in the returned Map are from type * String array (String[]). *

* The contents of the returned map are immutable in the sense that modifying the map * does not directly affect the render parameters. In order to set the * parameters using the modified map, * the {@link BaseURL#setParameters(Map)} method must be used. *

*

* If no parameters exist this method returns an empty Map. * * @return Map containing parameter names as * keys and parameter values as map values, or an empty Map * if no parameters exist. The keys in the parameter * map are of type String. The values in the parameter map are of type * String array (String[]). * * @since 2.0 * * @deprecated As of version 3.0. Use {@link PortletURL#getRenderParameters()}, * {@link ResourceURL#getResourceParameters()}, * or {@link ActionURL#getActionParameters()} as required. */ @Deprecated public java.util.Map getParameterMap(); /** * Writes the portlet URL to the output stream using the provided writer. *

* Note that the URL written to the output stream may not be a valid URL, as it may * be rewritten by the portal/portlet-container before returning the * markup to the client. *

* The URL written to the output stream is always XML escaped. For writing * non-escaped URLs use {@link #write(java.io.Writer, boolean)}. * * @param out the writer to write the portlet URL to * @throws java.io.IOException if an I/O error occurred while writing the URL * * @since 2.0 */ public void write(java.io.Writer out) throws java.io.IOException; /** * Writes the portlet URL to the output stream using the provided writer. * If the parameter escapeXML is set to true the URL will be escaped to be * valid XML characters, i.e. <, >, &, * ', " will get converted * into their corresponding character entity codes (< to &<, > to &>, * & to &&, ' to &', " to &"). * If escapeXML is set to false no escaping will be done. * The manner in which escaping is performed is * implementation specific. * If escapeXML is set to false, escaping the URL is * left to the implementation. * *

* Note that the URL written to the output stream may not be a valid URL, as it may * be rewritten by the portal/portlet-container before returning the * markup to the client. * * @param out the writer to write the portlet URL to * @param escapeXML denotes if the URL should be XML escaped before written to the output * stream or not * @throws java.io.IOException if an I/O error occurred while writing the URL * * @since 2.0 */ public void write(java.io.Writer out, boolean escapeXML) throws java.io.IOException; /** *

* Appends the portlet URL to the appendable object. *

* Note that the appended URL may not be a valid URL, as it may * be rewritten by the portal/portlet-container before returning the * markup to the client. *

* The appended URL is always XML escaped. For appending * non-escaped URLs use {@link #append(java.lang.Appendable, boolean)}. * * @param out the object to receive the URL * * @return Appendable the Appendable object containing the URL * * @throws java.io.IOException if an I/O error occurred while writing the URL * * @since 3.0 *

*/ public Appendable append(java.lang.Appendable out) throws java.io.IOException; /** *
* Appends the portlet URL to the appendable object. *

* If the parameter escapeXML is set to true, the URL will be escaped to be * valid XML characters. * The manner in which escaping is performed is * implementation specific. * If escapeXML is set to false, escaping the URL is * left to the implementation. *

* Note that the appended URL may not be a valid URL, as it may * be rewritten by the portal/portlet-container before returning the * markup to the client. * * @param out the object to receive the URL * * @return Appendable the Appendable object containing the URL * * @throws java.io.IOException if an I/O error occurred while writing the URL * * @since 3.0 *

*/ public Appendable append(java.lang.Appendable out, boolean escapeXML) throws java.io.IOException; /** * Adds a String property to an existing key on the URL. *

* This method allows URL properties to have multiple values. *

* Properties can be used by portlets to provide vendor specific information * to the URL. * * @param key * the key of the property * @param value * the value of the property * * @exception java.lang.IllegalArgumentException * if key is null. * * @since 2.0 */ public void addProperty(String key, String value); /** * Sets a String property on the URL. *

* Properties can be used by portlets to provide vendor specific information * to the URL. *

* This method resets all properties previously added with the same key. * * @param key * the key of the property * @param value * the value of the property * * @exception java.lang.IllegalArgumentException * if key is null. * * @since 2.0 */ public void setProperty(String key, String value); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy