/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/rwiki/trunk/rwiki-tool/tool/src/java/uk/ac/cam/caret/sakai/rwiki/tool/RequestScopeSuperBean.java $ * $Id: RequestScopeSuperBean.java 58794 2009-03-19 16:16:56Z s.swinsburg@lancaster.ac.uk $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation. * * Licensed under the Educational Community License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ecl1.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **********************************************************************************/ package uk.ac.cam.caret.sakai.rwiki.tool; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.authz.api.AuthzGroupService; import org.sakaiproject.component.cover.ServerConfigurationService; import org.sakaiproject.entity.api.Entity; import org.sakaiproject.exception.IdUnusedException; import org.sakaiproject.search.api.SearchService; import org.sakaiproject.site.api.Site; import org.sakaiproject.site.api.SiteService; import org.sakaiproject.tool.api.Session; import org.sakaiproject.tool.api.SessionManager; import org.sakaiproject.tool.api.ToolManager; import org.springframework.context.ApplicationContext; import uk.ac.cam.caret.sakai.rwiki.service.api.RWikiObjectService; import uk.ac.cam.caret.sakai.rwiki.service.api.RWikiSecurityService; import uk.ac.cam.caret.sakai.rwiki.service.api.model.RWikiObject; import uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService; import uk.ac.cam.caret.sakai.rwiki.service.message.api.PreferenceService; import uk.ac.cam.caret.sakai.rwiki.tool.api.PopulateService; import uk.ac.cam.caret.sakai.rwiki.tool.api.ToolRenderService; import uk.ac.cam.caret.sakai.rwiki.tool.bean.AuthZGroupBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.AuthZGroupCollectionBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.AuthZGroupEditBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.DiffBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.EditBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.ErrorBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.FullSearchBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.HistoryBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.HomeBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.MultiRealmEditBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.PermissionsBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.PrePopulateBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.PreferencesBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.PresenceBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.RecentlyVisitedBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.ReferencesBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.RenderBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.ResourceLoaderBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.SearchBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.ToolConfigBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.UpdatePermissionsBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.ViewBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.AuthZGroupBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.AuthZGroupCollectionBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.AuthZGroupEditBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.DiffHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.MultiRealmEditBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.PreferencesBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.PresenceBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.RecentlyVisitedHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.ReverseHistoryHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.ReviewHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.UpdatePermissionsBeanHelper; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.UserHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.ViewParamsHelperBean; import uk.ac.cam.caret.sakai.rwiki.tool.util.WikiPageAction; /** * This is a replacement for the RequestScopeApplicationContext which turned out * to be too slow. It is hideous and probably very confusing however it will * allow me to keep things working whilst I refactor. * * @author andrew */ public class RequestScopeSuperBean { private static Log log = LogFactory.getLog(RequestScopeSuperBean.class); public static final String REQUEST_ATTRIBUTE = "rsacMap"; private HttpServletRequest request; private HashMap<String, Object> map = new HashMap<String, Object>(); private ApplicationContext context; private RWikiSecurityService securityService; private RWikiObjectService objectService; private ToolRenderService toolRenderService; private PopulateService populateService; private AuthzGroupService realmService; private MessageService messageService; private PreferenceService preferenceService; private SearchService searchService; private ResourceLoaderBean resourceLoader; private boolean experimental = false; private boolean withnotification = false; private boolean withcomments = false; private org.sakaiproject.tool.api.ToolManager toolManager; private SessionManager sessionManager; private SiteService siteService; private String defaultUIHomePageName; private boolean searchExperimental = false; public static RequestScopeSuperBean getFromRequest( HttpServletRequest request) { return (RequestScopeSuperBean) request.getAttribute(REQUEST_ATTRIBUTE); } // Thread scope private static ThreadLocal<RequestScopeSuperBean> requestScopeSuperBeanHolder = new ThreadLocal<RequestScopeSuperBean>(); public static RequestScopeSuperBean getInstance() { return requestScopeSuperBeanHolder.get(); } public static void clearInstance() { //NameHelper.clearDefaultPage(); requestScopeSuperBeanHolder.set(null); } public static RequestScopeSuperBean createAndAttach( HttpServletRequest request, ApplicationContext context) { RequestScopeSuperBean rssb = new RequestScopeSuperBean(); rssb.setRequest(request); rssb.setContext(context); rssb.init(); request.setAttribute(REQUEST_ATTRIBUTE, rssb); // add it to thread scope requestScopeSuperBeanHolder.set(rssb); return rssb; } public void init() { securityService = (RWikiSecurityService) context .getBean(RWikiSecurityService.class.getName()); objectService = (RWikiObjectService) context .getBean(RWikiObjectService.class.getName()); toolRenderService = (ToolRenderService) context .getBean(ToolRenderService.class.getName()); populateService = (PopulateService) context .getBean(PopulateService.class.getName()); realmService = (AuthzGroupService) context .getBean(AuthzGroupService.class.getName()); preferenceService = (PreferenceService) context .getBean(PreferenceService.class.getName()); toolManager = (ToolManager) context .getBean(ToolManager.class.getName()); sessionManager = (SessionManager) context.getBean(SessionManager.class .getName()); siteService = (SiteService) context .getBean(SiteService.class.getName()); messageService = (MessageService) context.getBean(MessageService.class .getName()); experimental = ServerConfigurationService.getBoolean( "wiki.experimental", false); searchExperimental = ServerConfigurationService.getBoolean( "wiki.fullsearch", true) && ServerConfigurationService.getBoolean("search.enable", false); withnotification = ServerConfigurationService.getBoolean( "wiki.notification", true); withcomments = ServerConfigurationService.getBoolean("wiki.comments", true); defaultUIHomePageName = ServerConfigurationService.getString( "wiki.ui.homepage", "Home"); if ( searchExperimental ) { searchService = (SearchService) context.getBean(SearchService.class .getName()); } // if the message service has been configured // update the presence if (messageService != null) { Session session = sessionManager.getCurrentSession(); String userId = this.getCurrentUserId(); if (userId != null && userId.length() > 0) { String currentPageName = this.getCurrentPageName(); String pageSpace = this.getCurrentPageSpace(); if ( currentPageName != null && currentPageName.length() < 255 && pageSpace != null && pageSpace.length() < 255 ) { messageService.updatePresence(session.getId(), userId, this.getCurrentPageName(), this .getCurrentPageSpace()); } else { log.warn("Page names in wiki cannot be over 225 characters in length, presence not updated. Page Name was "+currentPageName); } } } } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } public ApplicationContext getContext() { return context; } public void setContext(ApplicationContext context) { this.context = context; } public ViewParamsHelperBean getNameHelperBean() { String key = "nameHelperBean"; if (map.get(key) == null) { ViewParamsHelperBean vphb = new ViewParamsHelperBean(); vphb.setServletRequest(request); vphb.setSecurityService(securityService); vphb.setToolConfigBean(getConfigBean()); vphb.init(); map.put(key, vphb); } return (ViewParamsHelperBean) map.get(key); } public String getCurrentLocalSpace() { String key = "currentLocalSpace"; if (map.get(key) == null) { ViewParamsHelperBean vphb = this.getNameHelperBean(); map.put(key, vphb.getLocalSpace()); } return (String) map.get(key); } public String getCurrentDefaultRealm() { String key = "currentDefaultRealm"; if (map.get(key) == null) { ViewParamsHelperBean vphb = this.getNameHelperBean(); map.put(key, vphb.getDefaultRealm()); } return (String) map.get(key); } public String getCurrentPageName(boolean refresh) { String key = "currentPageName"; if (map.get(key) == null || refresh ) { map.put(key, getNameHelperBean().getGlobalName()); } return (String) map.get(key); } public String getCurrentPageName() { return getCurrentPageName(false); } public String getCurrentPageSpace() { String key = "currentPageSpace"; if (map.get(key) == null) { map.put(key, getNameHelperBean().getPageSpace()); } return (String) map.get(key); } public String getCurrentSearch() { String key = "currentSearch"; if (map.get(key) == null) { map.put(key, getNameHelperBean().getSearch()); } return (String) map.get(key); } /** * The currently requested page * * @return */ public String getCurrentSearchPage() { String key = "currentSearchPage"; if (map.get(key) == null) { map.put(key, getNameHelperBean().getSearchPage()); } return (String) map.get(key); } public String getCurrentUserId() { String key = "currentUserId"; if (map.get(key) == null) { map.put(key, sessionManager.getCurrentSessionUserId()); } return (String) map.get(key); } public String getCurrentUser() { String key = "currentUser"; if (map.get(key) == null) { UserHelperBean uhb = new UserHelperBean(); uhb.setServletRequest(request); uhb.init(); map.put(key, uhb.getUser()); } return (String) map.get(key); } public String getWorksiteOwner() { try { Site s = siteService.getSite(toolManager.getCurrentPlacement() .getContext()); return s.getCreatedBy().getId(); } catch (IdUnusedException e) { } return "admin"; } public ViewBean getViewBean() { String key = "viewBean"; if (map.get(key) == null) { ViewBean vb = new ViewBean(); vb.setLocalSpace(this.getCurrentLocalSpace()); vb.setPageName(this.getCurrentPageName()); map.put(key, vb); } return (ViewBean) map.get(key); } public ResourceLoaderBean getResourceLoaderBean() { String key = "resourceLoaderBean"; if (map.get(key) == null) { ResourceLoaderBean rb = new ResourceLoaderBean(); rb.init(request); map.put(key, rb); } return (ResourceLoaderBean) map.get(key); } public RWikiObject getCurrentRWikiObject(boolean refresh) { String key = "currentRWikiObject"; if (map.get(key) == null || refresh ) { RWikiObject rwo = objectService.getRWikiObject( getCurrentPageName(), getCurrentLocalSpace()); map.put(key, rwo); } return (RWikiObject) map.get(key); } public RWikiObject getCurrentRWikiObject() { return getCurrentRWikiObject(false); } public String getCurrentRWikiObjectReference() { String key = "currentRWikiObjectReference"; if ( map.get(key) == null ) { RWikiObject rwo = getCurrentRWikiObject(); Entity e = objectService.getEntity(rwo); map.put(key,e.getReference()); } return (String) map.get(key); } public RecentlyVisitedBean getRecentlyVisitedBean() { String key = "recentlyVisitedBean"; if (map.get(key) == null) { RecentlyVisitedHelperBean rvhb = new RecentlyVisitedHelperBean(); rvhb.setServletRequest(request); rvhb.setDefaultSpace(getCurrentDefaultRealm()); rvhb.init(); map.put(key, rvhb.getRecentlyVisitedBean()); } return (RecentlyVisitedBean) map.get(key); } public boolean getWithBreadcrumbs() { String key = "withBreadcrumbs"; if (map.get(key) == null) { ViewParamsHelperBean vphb = getNameHelperBean(); map.put(key, vphb.getWithBreadcrumbs()); } return !"0".equals(map.get(key)); } public RenderBean getRenderBean() { String key = "renderBean"; if (map.get(key) == null) { RenderBean rb = new RenderBean(getCurrentRWikiObject(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public HistoryBean getHistoryBean() { String key = "historyBean"; if (map.get(key) == null) { HistoryBean hb = new HistoryBean(getCurrentRWikiObject(), getCurrentLocalSpace()); map.put(key, hb); } return (HistoryBean) map.get(key); } public ReverseHistoryHelperBean getReverseHistoryHelperBean() { String key = "reverseHistoryHelperBean"; if (map.get(key) == null) { ReverseHistoryHelperBean rhhb = new ReverseHistoryHelperBean(); rhhb.setRwikiObject(getCurrentRWikiObject()); rhhb.setRwikiObjectService(objectService); map.put(key, rhhb); } return (ReverseHistoryHelperBean) map.get(key); } public DiffBean getDiffBean() { String key = "diffBean"; if (map.get(key) == null) { DiffHelperBean dhb = new DiffHelperBean(); dhb.setServletRequest(request); dhb.setRwikiObject(getCurrentRWikiObject()); dhb.setRwikiObjectService(objectService); dhb.init(); map.put(key, dhb.getDiffBean()); } return (DiffBean) map.get(key); } public PrePopulateBean getPrePopulateBean() { String key = "prePopulateBean"; if (map.get(key) == null) { PrePopulateBean ppb = new PrePopulateBean(); ppb.setPopulateService(populateService); ppb.setCurrentGroup(getCurrentDefaultRealm()); ppb.setCurrentPageRealm(getCurrentPageSpace()); ppb.setWoksiteOwner(getWorksiteOwner()); map.put(key, ppb); } return (PrePopulateBean) map.get(key); } public FullSearchBean getFullSearchBean() { if ( searchExperimental ) { String key = "fullSearchBean"; if (map.get(key) == null) { FullSearchBean sb = new FullSearchBean(getCurrentSearch(), getCurrentSearchPage(), getCurrentLocalSpace(), searchService, toolManager); map.put(key, sb); } return (FullSearchBean) map.get(key); } return null; } public SearchBean getSearchBean() { String key = "searchBean"; if (map.get(key) == null) { SearchBean sb = new SearchBean(getCurrentSearch(), getCurrentLocalSpace(), objectService); map.put(key, sb); } return (SearchBean) map.get(key); } public PermissionsBean getPermissionsBean() { String key = "permissionsBean"; if (map.get(key) == null) { PermissionsBean pb = new PermissionsBean(getCurrentRWikiObject(), objectService); map.put(key, pb); } return (PermissionsBean) map.get(key); } public ErrorBean getErrorBean() { String key = "errorBean"; if (map.get(key) == null) { map.put(key, new ErrorBean()); } return (ErrorBean) map.get(key); } public EditBean getEditBean() { String key = "editBean"; if (map.get(key) == null) { ViewParamsHelperBean vphb = getNameHelperBean(); EditBean editBean = new EditBean(); editBean.setPreviousContent(vphb.getContent()); editBean.setPreviousVersion(vphb.getSubmittedVersion()); editBean.setSaveType(vphb.getSaveType()); map.put(key, editBean); } return (EditBean) map.get(key); } public ReviewHelperBean getReviewHelperBean() { String key = "reviewHelperBean"; if (map.get(key) == null) { ReviewHelperBean rhb = new ReviewHelperBean(); rhb.setServletRequest(request); rhb.setRwikiObject(getCurrentRWikiObject()); rhb.setRwikiObjectService(objectService); rhb.init(); map.put(key, rhb); } return (ReviewHelperBean) map.get(key); } public RenderBean getReviewRenderBean() { String key = "reviewRenderBean"; if (map.get(key) == null) { RenderBean rb = new RenderBean(getReviewHelperBean().getMock(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getViewRightRenderBean() { String key = "viewRightRenderBean"; if (map.get(key) == null) { String pageName = "view_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getEditRightRenderBean() { String key = "editRightRenderBean"; if (map.get(key) == null) { String pageName = "edit_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getInfoRightRenderBean() { String key = "infoRightRenderBean"; if (map.get(key) == null) { String pageName = "info_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getReviewRightRenderBean() { String key = "reviewRightRenderBean"; if (map.get(key) == null) { String pageName = "review_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getDiffRightRenderBean() { String key = "diffRightRenderBean"; if (map.get(key) == null) { String pageName = "diff_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getSearchRightRenderBean() { String key = "searchRightRenderBean"; if (map.get(key) == null) { String pageName = "search_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public RenderBean getPreviewRightRenderBean() { String key = "previewRightRenderBean"; if (map.get(key) == null) { String pageName = "preview_right"; RenderBean rb = new RenderBean(pageName, getCurrentDefaultRealm(), toolRenderService, objectService, getWithBreadcrumbs()); map.put(key, rb); } return (RenderBean) map.get(key); } public ReferencesBean getReferencesBean() { String key = "referencesBean"; if (map.get(key) == null) { ReferencesBean rb = new ReferencesBean(getCurrentRWikiObject(), objectService, getCurrentLocalSpace()); map.put(key, rb); } return (ReferencesBean) map.get(key); } public HomeBean getHomeBean() { String key = "homeBean"; if (map.get(key) == null) { HomeBean hb = new HomeBean(); ViewParamsHelperBean vphb = getNameHelperBean(); ViewBean vb = new ViewBean(getConfigBean().getHomePage(), vphb.getDefaultRealm()); hb.setHomeLinkUrl(vb.getViewUrl()); hb.setHomeLinkValue(getConfigBean().getHomePageName()); map.put(key, hb); } return (HomeBean) map.get(key); } public UpdatePermissionsBean getUpdatePermissionsBean() { String key = "updatePermissionsBean"; if (map.get(key) == null) { UpdatePermissionsBean ub = UpdatePermissionsBeanHelper .createUpdatePermissionsBean(request, objectService); map.put(key, ub); } return (UpdatePermissionsBean) map.get(key); } public AuthZGroupBean getRealmBean() { String key = "realmBean"; if (map.get(key) == null) { String siteId = toolManager.getCurrentPlacement().getContext(); AuthZGroupBean rb = AuthZGroupBeanHelper.createRealmBean( realmService, siteService,getCurrentRWikiObject(), getErrorBean(), getViewBean(),siteId); map.put(key, rb); } return (AuthZGroupBean) map.get(key); } public AuthZGroupEditBean getRealmEditBean() { String key = "realmEditBean"; if (map.get(key) == null) { AuthZGroupEditBean reb = AuthZGroupEditBeanHelper .createRealmEditBean(request, getViewBean()); map.put(key, reb); } return (AuthZGroupEditBean) map.get(key); } public AuthZGroupCollectionBean getAuthZGroupCollectionBean() { String key = "authZGroupCollectionBean"; if (map.get(key) == null) { AuthZGroupCollectionBean cb = AuthZGroupCollectionBeanHelper .createAuthZCollectionBean(realmService, getCurrentRWikiObject(), getViewBean(), objectService); map.put(key, cb); } return (AuthZGroupCollectionBean) map.get(key); } public MultiRealmEditBean getMultiRealmEditBean() { String key = "multiRealmEditBean"; if (map.get(key) == null) { MultiRealmEditBean cb = MultiRealmEditBeanHelper .createMultiRealmEditBean( getCurrentRWikiObject(), request,this); map.put(key, cb); } return (MultiRealmEditBean) map.get(key); } public PresenceBean getPresenceBean() { String key = "presenceBean"; PresenceBean pb = (PresenceBean) map.get(key); if (pb == null) { pb = PresenceBeanHelper.createRealmBean(messageService, getCurrentPageName(), getCurrentPageSpace()); map.put(key, pb); } return pb; } /** * @return Returns the messageService. */ public MessageService getMessageService() { return messageService; } public PreferencesBean getPreferencesBean() { String key = "preferencesBean"; PreferencesBean pb = (PreferencesBean) map.get(key); if (pb == null) { pb = PreferencesBeanHelper.createPreferencesBean(getCurrentUserId(), getCurrentPageSpace(), preferenceService); map.put(key, pb); } return pb; } /** * @return Returns the experimental. */ public boolean getExperimental() { return experimental; } /** * @param experimental * The experimental to set. */ public void setExperimental(boolean experimental) { this.experimental = experimental; } public String getSearchTarget() { if ( searchExperimental ) { return WikiPageAction.FULL_SEARCH_ACTION.getName(); } else { return WikiPageAction.SEARCH_ACTION.getName(); } } /** * @return Returns the withnotification. */ public boolean isWithnotification() { return withnotification; } /** * @param withnotification * The withnotification to set. */ public void setWithnotification(boolean withnotification) { this.withnotification = withnotification; } /** * @return Returns the withcomments. */ public boolean isWithcomments() { return withcomments; } /** * @param withcomments * The withcomments to set. */ public void setWithcomments(boolean withcomments) { this.withcomments = withcomments; } public ToolConfigBean getConfigBean() { String key = "toolConfigBean"; ToolConfigBean configBean = (ToolConfigBean) map.get(key); if (configBean == null) { configBean = new ToolConfigBean(toolManager.getCurrentPlacement(), this.defaultUIHomePageName); map.put(key, configBean); } return configBean; } public boolean getLoadAutoSave() { boolean b = getNameHelperBean().isLoadAutoSave(); return b; } public boolean getRemoveAutoSave() { boolean b = getNameHelperBean().isRemoveAutoSave(); return b; } public String getPageRevisionContent(RWikiObject currentRWikiObject,int previousRevision) { RWikiObject rwo = objectService.getRWikiHistoryObject(currentRWikiObject, previousRevision); if ( rwo == null ) { return ""; } return rwo.getContent(); } public RenderBean getPreviewRenderBean() { String key = "renderBean"; if (map.get(key) == null) { ViewParamsHelperBean vphb = getNameHelperBean(); RenderBean rb = new RenderBean(getCurrentRWikiObject(), toolRenderService, objectService, getWithBreadcrumbs()); String content = vphb.getContent(); rb.setPreviewContent(content); map.put(key, rb); } return (RenderBean) map.get(key); } }