// Copyright (c) 2001 Oracle Corporation

package oracle.portal.provider.v1;

/**
 * Extension (#3) to the Portlet interface.
 *
 * The first extension was (mis)named <code>MobilePortlet</code>.
 * The second extension does not exist in this release of the JPDK.
 * This is called extension 3 so it's contents are compatible with
 * extension 3 in the 9.0.2 release
 * <P>
 * So as to not break existing portlets new meta data is added to
 * interfaces that subclass the previous.
 *
 */
public interface MutablePortletXtra3 extends MutablePortletXtra2 {

     /**
     * Sets the minimum user authentication level required for the
     * customize link to be displayed in the portlet header
     *
     * If the authentication level of a user is less than the minimum
     * authentication level specified, the customize link will not be
     * displayed in the portlet header.
     *
     * @param authLevel minimum authentication level. Possible values are
     *                  "PUBLIC", "WEAK", "STRONG"
     */
    public void setMinEditAuthLevel(String authLevel) throws PortletException;

    /**
     * Sets the controller that will render this portlet's container.
     *
     * The container renderer is responsible for rendering the portlet
     * container in each of the show modes the portlet supports
     *
     * @param renderer the portlet container renderer
     */
    public void setContainerRenderer(PortletContainerRenderer renderer)
        throws PortletException;

    /**
     * Sets the controller that will render this portlet's container.
     *
     * The container renderer is responsible for rendering the portlet
     * container in each of the show modes the portlet supports
     *
     * @param renderer the portlet container renderer. Even though the type
     *                 of the parameter is Object, the parameter must be an
     *                 instance of PortletContainerRenderer
     */
    public void setContainerRenderer(Object renderer) throws PortletException;
}

 