public String encode(PortletWindow window, Map<String, String[]> parameters, String actionScopeId, boolean actionScopeRendered,
String cacheLevel, String resourceId, Map<String, String[]> privateRenderParameters, Map<String, String[]> publicRenderParameters,
PortletMode mode, WindowState state, PortalURL.URLType urlType)
throws UnsupportedEncodingException
{
if (!window.isValid())
{
throw new IllegalStateException("Cannot encode Navigational State for invalid window: "+window.getId());
}
if ( mode != null || state != null )
{
PortletApplication pa = null;
if (mode != null && !JetspeedActions.getStandardPortletModes().contains(mode))
{
pa = window.getPortletDefinition().getApplication();
mode = pa.getMappedPortletMode(mode);
}
if (state != null && !JetspeedActions.getStandardWindowStates().contains(state))
{
if ( pa == null )
{
pa = window.getPortletDefinition().getApplication();
}
state = pa.getMappedWindowState(state);
}
}
return codec.encode(requestStates, window, parameters, actionScopeId, actionScopeRendered, cacheLevel, resourceId, privateRenderParameters, publicRenderParameters,
mode, state, urlType, isNavigationalParameterStateFull(), isRenderParameterStateFull());
}