com.ibm.workplace.wcm.api
Interface RenderingContext

All Superinterfaces:
java.lang.Cloneable

public interface RenderingContext
extends java.lang.Cloneable

Represents a rendering context.

A rendering context contains all the information required to render a renderable object. This includes information such as the path to the object to be rendered and any request parameters.

Here is an example of how to create a RenderingContext, adding to the context, and then using the context to render a piece of content:

 // Get the workspace
 Workspace workspace = Repository.getWorkspace("myUser", "myPassword");

 // Create the rendering context
 RenderingContext context =  workspace.createRenderingContext(servletRequestObj,
                                  servletResponseObj,
                                  new HashMap(),
                                  "http://[HOSTNAME]:[PORT]/[CONTEXT]",
                                  "connect");

 // Set the path to the content to be rendered
 context.setRenderedContent("/Library1/SiteA/SiteArea1/SiteArea1-1/myContent");

 // Get the rendered string
 String renderedContent = workspace.render(context);
 


Method Summary
 RenderingContext clone()
          Cloning a RenderingContext will copy all member variables on the current instance, this includes request, response, web app URL, servlet path, prefix, presentation template override, request parameters, and rendered item.
 SiteArea[] getAllSiteAreas()
          Returns an ordered array of SiteArea objects that are in the path to be rendered by this RenderingContext.
 Content getContent()
          Returns the Content object that will be rendered by this RenderingContext.
 ContentLink getContentLink()
          Returns the ContentLink object that will be rendered by this RenderingContext.
 DocumentId getCurrentResultId()
          Returns the current result DocumentId value.
 int getCurrentResultIndex()
          Returns the current result index.
 DocumentLibrary getLibrary()
          Returns the DocumentLibrary of the object being rendered.
 java.lang.String getLibraryRelativePath()
          Returns the path relative to the library of the object being rendered.
 java.util.Locale getLocale()
          Retrieve the Locale being used to render the current page.
 java.lang.String getPath()
          Returns the path to the object being rendered.
 java.lang.String getPath(boolean includeLib)
          Returns the path to the object being rendered.
 java.lang.String getPathInfo()
          Retrieve the path of the current rendering context
 java.lang.String getPrefix()
          Returns the prefix for all document URLs generated on rendering.
 java.lang.String getPresTemplateOverride()
          Returns the name path of the PresentationTemplate to be used when rendering.
 DocumentId<Project> getProjectId()
          Returns the DocumentId of the Project associated with this RenderingContext
 TemplatedDocument getRenderedItem()
          Returns the TemplatedDocument object that will be rendered by this RenderingContext.
 java.util.List<java.lang.String> getRenderModes()
          Get the names of the render modes to be used when rendering, or an empty list if there are no render modes.
 java.util.Map getRequestParameters()
          Returns the current request parameters used by this RenderingContext.
 Site getSite()
          Deprecated. No replacement. Site is not required in Web sites created using the current version of IBM Web Content Manager. The method is retained for compatibility with Web sites migrated from pre 7.0 versions of IBM Web Content Manager. Use getAllSiteAreas() to get all level site areas.
 SiteArea[] getSiteAreas()
          Deprecated. No replacement. The method is retained for compatibility with Web sites migrated from pre 7.0 versions of IBM Web Content Manager. Use getAllSiteAreas() to get all level site areas.
 java.lang.String getURL()
          Returns the URL to WCM and any request parameters.
 java.lang.String getWcmServletPath()
          Returns the servlet path to be used - either the servlet path that has been set, or the servlet path from the request.
 java.lang.String getWcmWebAppPath()
          Returns the web app path to be used - either the WCM web app path that has been set using setWcmWebAppPath(String), or the path from the request.
 boolean hasProject()
          Indicates if this RenderingContext has a Project registered
 boolean isGenerateContextualLinks()
          Returns whether to generate contextual (a.k.a.
 boolean isInEditMode()
          Indicates if the portal page is rendering in View Mode or Edit Mode
 boolean isPresentationOverride()
          Returns true if a presentation template override has been specified; false otherwise.
 void removeProject()
          remove any Project from this RenderingContext.
 void setGenerateContextualLinks(boolean contextualLinks)
          Sets whether to generate contextual (a.k.a.
 void setPrefix(java.lang.String prefix)
          Sets the prefix for all document URLs generated on rendering.
 void setPresentationTemplateOverride(java.lang.String presTemplateName)
          Sets the name path of the presentation template to the string argument specified.
 void setProject(Project project)
          Set a Project within this RenderingContext.
 void setProject(java.lang.String projectName)
          Set a Project by name in this RenderingContext.
 void setRenderedContent(ContentLink contentLink, SiteArea siteArea)
          Sets the ContentLink object to be rendered.
 void setRenderedContent(Content content, SiteArea siteArea)
          Sets the Content object to be rendered.
 void setRenderedContent(Site site)
          Deprecated. Use setRenderedContent(SiteArea)
 void setRenderedContent(SiteArea siteArea)
          Sets the SiteArea to be rendered.
 void setRenderedContent(java.lang.String path)
          Sets the full path of the Content to render.
 void setRenderMode(java.lang.String p_renderModeName)
          Set the name of the render mode to use when rendering.
 void setRenderModes(java.util.List<java.lang.String> p_renderModeNames)
          Set the names of the render modes to be used when rendering, or set null if no render modes should be used.
 void setRequestParameters(java.util.Map requestParameters)
          Sets the request parameters to be used by this RenderingContext while rendering as a map of name=single-value parameters.
 void setWcmServletPath(java.lang.String wcmServletPath)
          Sets the servlet path of the WCM servlet.
 void setWcmWebAppPath(java.lang.String wcmWebAppPath)
          Sets the path (including host) to the WCM web application.
 

Method Detail

getURL

java.lang.String getURL()
Returns the URL to WCM and any request parameters. That is:
getWcmWebAppPath() + getWcmServletPath() + getPath() +
 [?requestParamName1=requestParamValue1&...] == getURL()

Returns:
the URL (including request parameters)

getPath

java.lang.String getPath()
Returns the path to the object being rendered. This is everything after the servlet path, excluding any request parameters. May not include the library in the path returned.

Returns null if the path could not be retrieved.

Returns:
the path to the renderable object

getPath

java.lang.String getPath(boolean includeLib)
Returns the path to the object being rendered. This is everything after the servlet path, excluding any request parameters. Will include the library when passed true. Will not include the library when passed false

Returns null if the path could not be retrieved.

Parameters:
includeLib - boolean if true the path will include the library if false it will not.
Returns:
the path to the renderable object

isPresentationOverride

boolean isPresentationOverride()
Returns true if a presentation template override has been specified; false otherwise.

For this method to return true setPresentationTemplateOverride() must have been called.

Returns:
true if the presentation template is being overridden; false otherwise

setPresentationTemplateOverride

void setPresentationTemplateOverride(java.lang.String presTemplateName)
Sets the name path of the presentation template to the string argument specified. The name path format is libraryName/presentationTemplateName.

The argument to this method must be the name of the presentation template to use when rendering. The argument to this method will override any presentation template specified in the presentation-authoring template mapping of the Site or SiteArea.

Passing a null argument to this method will result in no presentation template override occurring. I.e. Rendering will behave as if this method had not been called.

Note: This method does not check whether the string argument is a valid PresentationTemplate in the repository.

Parameters:
presTemplateName - the presentation template name path

getPresTemplateOverride

java.lang.String getPresTemplateOverride()
Returns the name path of the PresentationTemplate to be used when rendering. The name path format is libraryName/presentationTemplateName.

This method will return null if no presentation template override has been specified. This method will return null or an empty String if that is what was passed in to setPresentationTemplateOverride(String).

Use isPresentationOverride() before calling this method to ensure a presentation template has been specified.

Returns:
the name path of the PresentationTemplate to use when rendering

getRenderModes

java.util.List<java.lang.String> getRenderModes()
Get the names of the render modes to be used when rendering, or an empty list if there are no render modes. The render mode that will be used for rendering is the first mode in the list for which a presentation template is mapped to the authoring template of the rendered content. The String "default" indicates the default presentation template. See AbstractTemplateItemProperties.DEFAULT_PRESENTATION_IDENTIFIER. The render mode name "summary" indicates the "Summary Presentation". See AbstractTemplateItemProperties.SUMMARY_PRESENTATION_IDENTIFIER.

Returns:
the render mode names, or an empty list if no render modes are set

setRenderMode

void setRenderMode(java.lang.String p_renderModeName)
Set the name of the render mode to use when rendering. This has the same effect as using setRenderModes(List) with a single render mode name in the list. Set null to render with no render mode. The String "default" can be used as the render mode name in order to indicate that the default presentation template should be used. See AbstractTemplateItemProperties.DEFAULT_PRESENTATION_IDENTIFIER. The render mode name "summary" indicates the "Summary Presentation". See AbstractTemplateItemProperties.SUMMARY_PRESENTATION_IDENTIFIER.

Parameters:
p_renderModeName - the render mode name to set

setRenderModes

void setRenderModes(java.util.List<java.lang.String> p_renderModeNames)
Set the names of the render modes to be used when rendering, or set null if no render modes should be used. The render mode that will be used for rendering is the first mode in the list for which a presentation template is mapped to the authoring template of the rendered content. Set null or an empty list to render with no render mode. The String "default" can be put in the render mode name list in order to indicate that the default presentation template should be used. See AbstractTemplateItemProperties.DEFAULT_PRESENTATION_IDENTIFIER. The render mode name "summary" indicates the "Summary Presentation". See AbstractTemplateItemProperties.SUMMARY_PRESENTATION_IDENTIFIER.

Parameters:
p_renderModeNames - The render modes names to set

setPrefix

void setPrefix(java.lang.String prefix)
Sets the prefix for all document URLs generated on rendering.

A null argument to this method will be converted to an empty String and will have no effect on the document URLs generated on rendering.

Parameters:
prefix - the String to prepend to all document URLs generated on rendering.

getPrefix

java.lang.String getPrefix()
Returns the prefix for all document URLs generated on rendering.

Note: This method may return an empty String, but never null.

Returns:
the prefix

getRenderedItem

TemplatedDocument getRenderedItem()
Returns the TemplatedDocument object that will be rendered by this RenderingContext.

If a Site or SiteArea was specified as the argument to setRenderedContent(), this method will return the default Content of the relevant Site or SiteArea, unless the SiteFrameworkContainer.RenderingBehaviour is RENDER_DIRECTLY. In the case that SiteFrameworkContainer.RenderingBehaviour is RENDER_DIRECTLY, the TemplatedDocument object that will be returned is the Site or SiteArea itself.

Note: This method will return null if the TemplatedDocument object could not be retrieved.

Returns:
the TemplatedDocument object to render
Since:
8.0 (This is new in 8.0, since SiteFrameworkContainer.RenderingBehaviour is new in 8.0)

getContent

Content getContent()
Returns the Content object that will be rendered by this RenderingContext.

If a Site or SiteArea was specified as the argument to setRenderedContent(), this method will return the default Content of the relevant Site or SiteArea.

Note: This method will return null if the Content object could not be retrieved.

Since 8.0, this will return null if the rendered item has SiteFrameworkContainer.RenderingBehaviour set as RENDER_DIRECTLY. For this reason, from 8.0 onwards it is recommended to use getRenderedItem() rather than this method.

Returns:
the Content object to render

getContentLink

ContentLink getContentLink()
Returns the ContentLink object that will be rendered by this RenderingContext.

Note: Returns null if no ContentLink has been set or if the ContentLink object could not be retrieved.

Returns:
the ContentLink object to render

getSite

@Deprecated
Site getSite()
Deprecated. No replacement. Site is not required in Web sites created using the current version of IBM Web Content Manager. The method is retained for compatibility with Web sites migrated from pre 7.0 versions of IBM Web Content Manager. Use getAllSiteAreas() to get all level site areas.

Returns the Site object that is in this RenderingContext.

This method may still be called even if setRenderedContent(Site) was not the method used to set the object to be rendered. I.e. A Site object will still be returned even if this RenderingContext will not be rendering a Site.

Note: Returns null if no Site has been set or if the Site object could not be retrieved.

Returns:
the Site object

getSiteAreas

@Deprecated
SiteArea[] getSiteAreas()
Deprecated. No replacement. The method is retained for compatibility with Web sites migrated from pre 7.0 versions of IBM Web Content Manager. Use getAllSiteAreas() to get all level site areas.

Returns an ordered array of SiteArea objects that are in the path to be rendered by this RenderingContext. The Site will not be included.

The order of the SiteArea objects in this array matches the order of the SiteArea objects in the Site Area hierarchy.

Returns:
an ordered array of SiteArea objects

getAllSiteAreas

SiteArea[] getAllSiteAreas()
Returns an ordered array of SiteArea objects that are in the path to be rendered by this RenderingContext.

The order of the SiteArea objects in this array matches the order of the SiteArea objects in the Site Area hierarchy.

Returns:
an ordered array of SiteArea objects

setRenderedContent

void setRenderedContent(java.lang.String path)
Sets the full path of the Content to render. This is of the form
/Library/Site/SiteArea/SiteArea/Content

Note: This path must include the Content, unless the SiteArea's SiteFrameworkContainer.RenderingBehaviour is RENDER_DIRECTLY.

Parameters:
path - the full path of the Content or SiteArea to render

setRenderedContent

@Deprecated
void setRenderedContent(Site site)
Deprecated. Use setRenderedContent(SiteArea)

Sets the Site to be rendered.

If this method is used to specify what shall be rendered, then the default content of the Site argument will be rendered, if it has been set.

Parameters:
site - the Site to be rendered

setRenderedContent

void setRenderedContent(SiteArea siteArea)
Sets the SiteArea to be rendered.

If this method is used to specify what shall be rendered, then the SiteArea will be rendered, in the manner according to its SiteFrameworkContainer.RenderingBehaviour

Parameters:
siteArea - the SiteArea to be rendered

setRenderedContent

void setRenderedContent(Content content,
                        SiteArea siteArea)
Sets the Content object to be rendered.

Note: The Content specified must exist under the given SiteArea.

Parameters:
content - the Content to render
siteArea - the SiteArea that the Content belongs to

setRenderedContent

void setRenderedContent(ContentLink contentLink,
                        SiteArea siteArea)
Sets the ContentLink object to be rendered.

Note: The ContentLink specified must exist under the given SiteArea.

Parameters:
contentLink - the ContentLink to render
siteArea - the SiteArea that the ContentLink belongs to

setWcmWebAppPath

void setWcmWebAppPath(java.lang.String wcmWebAppPath)
Sets the path (including host) to the WCM web application. This is of the form:

http://host:[port]/context_path

Parameters:
wcmWebAppPath - the path to the WCM web application

setWcmServletPath

void setWcmServletPath(java.lang.String wcmServletPath)
Sets the servlet path of the WCM servlet.

Parameters:
wcmServletPath - the servlet path of the WCM servlet

getWcmWebAppPath

java.lang.String getWcmWebAppPath()
Returns the web app path to be used - either the WCM web app path that has been set using setWcmWebAppPath(String), or the path from the request. This includes from the protocol up to and including the context path.

Returns:
the web app path that will be used when rendering

getWcmServletPath

java.lang.String getWcmServletPath()
Returns the servlet path to be used - either the servlet path that has been set, or the servlet path from the request.

Returns:
the servlet path that will be used when rendering

setRequestParameters

void setRequestParameters(java.util.Map requestParameters)
Sets the request parameters to be used by this RenderingContext while rendering as a map of name=single-value parameters. The keys must be Strings, the values can be any object, but will typically be Strings too. The parameters of this Map will replace the existing parameters of the request. This Map can contain parameters that are acted upon by Web Content Manager as well as additional custom parameters that are acted upon by the rendered content. The following request parameters are used by Web Content Manager to generate the rendering context, and so are reserved:

Parameters:
requestParameters - the request parameters

getRequestParameters

java.util.Map getRequestParameters()
Returns the current request parameters used by this RenderingContext. This will be a copy of the actual map. Changes made to the returned map will not change the parameters being used in this RenderingContext.

Returns:
the request parameters map of name=single-value parameters. The keys must be Strings, the values can be any object, but will typically be Strings too.

getCurrentResultId

DocumentId getCurrentResultId()
Returns the current result DocumentId value. This method will only return a value when invoked within a Menu, Navigator, Search, Personalization or Taxonomy component. Otherwise, null will be returned. If the current result is not a Document, this will return null. For example, this will occur if the results come from the Digital Data Connector (DD(c).

Returns:
the current result DocumentId or null if no result value currently exists.

getCurrentResultIndex

int getCurrentResultIndex()
Returns the current result index. This method will only return a positive value when invoked within a Menu, Navigator, Search, Personalization or Taxonomy component. The value starts from 1. Otherwise, -1 will be returned.

Returns:
the current result index
Since:
8.5 CF7

isGenerateContextualLinks

boolean isGenerateContextualLinks()
Returns whether to generate contextual (a.k.a. Piece of Content or Po(c) links if possible. A contextual link will lead to the portlet associated with the linked content.

Returns:
boolean

setGenerateContextualLinks

void setGenerateContextualLinks(boolean contextualLinks)
Sets whether to generate contextual (a.k.a. Piece of Content or Po(c) links if possible. A contextual link will lead to the portlet associated with the linked content.

Parameters:
contextualLinks - true to create contextual links

getLibraryRelativePath

java.lang.String getLibraryRelativePath()
Returns the path relative to the library of the object being rendered. That is, the path starting at the Site name.

Returns null if the path could not be retrieved.

Returns:
the path relative to the library of the object being rendered.

getLibrary

DocumentLibrary getLibrary()
Returns the DocumentLibrary of the object being rendered.

Returns null if the DocumentLibrary could not be retrieved.

Returns:
the DocumentLibrary of the object being rendered.

getPathInfo

java.lang.String getPathInfo()
Retrieve the path of the current rendering context

Returns:
the path of the current rendering context

getLocale

java.util.Locale getLocale()
Retrieve the Locale being used to render the current page.

Returns:
the Locale being used to render the current page.

setProject

void setProject(java.lang.String projectName)
                throws com.ibm.workplace.wcm.api.exceptions.DocumentNotFoundException
Set a Project by name in this RenderingContext. If the projectName parameter is null, or a corresponding project for the name cannot be found, a DocumentNotFoundException will be thrown.

Parameters:
projectName - the name of the project to set
Throws:
com.ibm.workplace.wcm.api.exceptions.DocumentNotFoundException - if the projectName parameter is null, or a corresponding project for the name cannot be found.

setProject

void setProject(Project project)
                throws com.ibm.workplace.wcm.api.exceptions.DocumentNotFoundException
Set a Project within this RenderingContext. If the project parameter is null, a DocumentNotFoundException is thrown.

Parameters:
project - the project to set in this RenderingContext.
Throws:
com.ibm.workplace.wcm.api.exceptions.DocumentNotFoundException - if the project parameter is null

removeProject

void removeProject()
remove any Project from this RenderingContext.


isInEditMode

boolean isInEditMode()
Indicates if the portal page is rendering in View Mode or Edit Mode

Returns:
true if the portal page is rendering in Edit Mode, false otherwise

hasProject

boolean hasProject()
Indicates if this RenderingContext has a Project registered

Returns:
true if a Project is registered, false otherwise

getProjectId

DocumentId<Project> getProjectId()
Returns the DocumentId of the Project associated with this RenderingContext

Returns:
the DocumentId of the Project associated with this RenderingContext

clone

RenderingContext clone()
Cloning a RenderingContext will copy all member variables on the current instance, this includes request, response, web app URL, servlet path, prefix, presentation template override, request parameters, and rendered item.

Returns:
a cloned Rendering Context