// Copyright (c) 2001 Oracle Corporation

package oracle.portal.provider.v1;

/**
 * First Extension to the Provider interface.
 *
 * This interface represents an extension to the Provider interface.
 * An extension interface was used to code using the original interface
 * would not be broken by adding new methods.
 */
public interface ProviderXtra extends Provider {

    /**
     * Returns the default portlet container renderer
     *
     * The portlet container renderer is responsible for rendering the portlet
     * container in each of the show modes the portlet supports.
     *
     * Each portlet can specify it's own container renderer and you can specify
     * a default at the provider level to be used by any portlet that does
     * not explicitly specify it's own container renderer
     *
     * @return the portlet container renderer or null if the provider does
     *         not have a default container renderer
     */
    public PortletContainerRenderer getContainerRenderer();

    /**
     * Sets the default portlet container renderer
     *
     * The container renderer is responsible for rendering the portlet
     * container in each of the show modes the portlet supports
     *
     * Each portlet can specify it's own container renderer and you can specify
     * a default at the provider level to be used by any portlet that does
     * not explicitly specify it's own container renderer
     *
     * @param renderer the portlet container renderer
     */
    public void setContainerRenderer(PortletContainerRenderer renderer)
        throws ProviderException;

    /**
     * Sets the default portlet container renderer
     *
     * The container renderer is responsible for rendering the portlet
     * container in each of the show modes the portlet supports
     *
     * Each portlet can specify it's own container renderer and you can specify
     * a default at the provider level to be used by any portlet that does
     * not explicitly specify it's own container renderer
     *
     * @param renderer the default 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 ProviderException;

}

