* @throws PortalException
*/
public void renderXML (ContentHandler out, String uid) throws PortalException {
Utility.logMessage("DEBUG", this.getClass().getName() + "::renderXML(): this = " + this);
CGroupsManagerSessionData sessionData = getSessionData(uid);
ChannelRuntimeData runtimeData= sessionData.runtimeData;
long time1 = Calendar.getInstance().getTime().getTime();
long time2 = 0;
Document viewDoc = null;
try {
if (sessionData.servantChannel != null) {
((IChannel)sessionData.servantChannel).renderXML(out);
Utility.logMessage("DEBUG", this.getClass().getName() + ".renderXML(): Defering to servant render");
}
else {
viewDoc = sessionData.model;
time2 = Calendar.getInstance().getTime().getTime();
XSLT xslt = XSLT.getTransformer(this, runtimeData.getLocales());
xslt.setXML(viewDoc);
xslt.setTarget(out);
xslt.setStylesheetParameter("baseActionURL", sessionData.runtimeData.getBaseActionURL());
if (sessionData.isAdminUser) {
xslt.setStylesheetParameter("ignorePermissions", "true");
}
if (sessionData.customMessage !=null) {
xslt.setStylesheetParameter("customMessage", sessionData.customMessage);
}
xslt.setStylesheetParameter("mode", sessionData.mode);
xslt.setStylesheetParameter("page", String.valueOf(sessionData.currentPage));
if (sessionData.highlightedGroupID != null) {
xslt.setStylesheetParameter("highlightedGroupID", sessionData.highlightedGroupID);
}
if (sessionData.rootViewGroupID != null) {
xslt.setStylesheetParameter("rootViewGroupID", sessionData.rootViewGroupID);
}
else if (sessionData.defaultRootViewGroupID != null){
xslt.setStylesheetParameter("rootViewGroupID", sessionData.defaultRootViewGroupID);
}
if (sessionData.feedback != null) {
xslt.setStylesheetParameter("feedback", sessionData.feedback);
sessionData.feedback = null;
}
if (sessionData.servantMode) {
xslt.setStylesheetParameter("grpServantMode", "true");
}
if (!sessionData.allowFinish) {
xslt.setStylesheetParameter("blockFinishActions", "true");
}
// now handled in the permissions policy
//if (sessionData.blockEntitySelect) {
// xslt.setStylesheetParameter("blockEntitySelect", "true");
//}
try {
//Utility.logMessage("DEBUG", this.getClass().getName()
// + ".renderXML(): grpView=" + runtimeData.getParameter("grpView"));
xslt.setXSL(sslLocation, "main", sessionData.runtimeData.getBrowserInfo());
xslt.transform();
}
catch (PortalException pe){
Utility.logMessage("ERROR", pe.toString(), pe);
if (pe.getCause()!=null){
Utility.logMessage("ERROR", pe.getCause().toString(), pe.getCause());
}
}
catch (Exception e) {
Utility.logMessage("ERROR", e.toString(), e);
}
//Utility.printDoc(viewDoc, "viewXMl ready:\n");
Utility.logMessage("DEBUG","CGroupsManager::renderXML(): Servant services complete");
/* @todo remove following print statement */
Utility.printDoc(viewDoc, "CGroupsManager::renderXML(): Final document state:");
}
} catch (Exception e) {
Utility.logMessage("ERROR", e.toString(), e);
}
//Utility.logMessage("DEBUG", this.getClass().getName() + "::renderXML(): Finished with Groups Management");
//Utility.logMessage("DEBUG", this.getClass().getName() + "::renderXML(): =-+_=-+_=-+_=-+_=-+_=-+_=-+_=-+_ XXXXXXXXXXXXXX _=-+_=-+_=-+_=-+_=-+_=-+_=-+_=-+_");
long time3 = Calendar.getInstance().getTime().getTime();
Utility.logMessage("DEBUG", this.getClass().getName() + ".renderXML() timer: "
+ String.valueOf((time3 - time1)) + " ms total, xsl took " + String.valueOf((
time3 - time2)) + " ms for view " + runtimeData.getParameter("grpView"));
Utility.logMessage("DEBUG", this.getClass().getName() + ".renderXML() time since setRD: "
+ String.valueOf((time3 - sessionData.startRD)));
return;
}