Author: ehillenius Date: Wed Jun 27 16:38:39 2007 New Revision: 551394 URL: http://svn.apache.org/viewvc?view=rev&rev=551394 Log: docs, formatting
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java?view=diff&rev=551394&r1=551393&r2=551394 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java (original) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java Wed Jun 27 16:38:39 2007 @@ -53,7 +53,7 @@ { /** - * + * Destroy the store. */ void destroy(); @@ -72,8 +72,8 @@ /** * This method is called when the page is accessed. A IPageStore - * implementation can block until a save of that page version is done. So - * that a specific page version is always restore able. + * implementation can block until a save of that page version is done. + * So that a specific page version is always restore able. * * @param sessionId * @param page @@ -83,9 +83,12 @@ /** * Removes a page from the persistent layer. * - * @param sessionId The session of the page that must be removed - * @param pagemap The pagemap of the page that must be removed - * @param id The id of the page. + * @param sessionId + * The session of the page that must be removed + * @param pagemap + * The pagemap of the page that must be removed + * @param id + * The id of the page. */ void removePage(String sessionId, String pagemap, int id); @@ -104,17 +107,19 @@ * @param sessionId */ void unbind(String sessionId); - } + /** + * Page map implementation for this session store. + */ private static final class SecondLevelCachePageMap extends PageMap { private static final long serialVersionUID = 1L; private Page lastPage = null; - + private List pageVersions = new ArrayList(); - + /** * Construct. @@ -126,6 +131,9 @@ super(name); } + /** + * @see org.apache.wicket.PageMap#get(int, int) + */ public Page get(int id, int versionNumber) { HashMap pageMaps = (HashMap)usedPages.get(); @@ -140,20 +148,23 @@ pages = new IntHashMap(); pageMaps.put(getName(), pages); } - + // for now i only get by id. - // does it really make any sense that there are multiply instances of the + // does it really make any sense that there are multiply instances + // of the // same page are alive in one session?? Page page = (Page)pages.get(id); - if (page != null) return page; - + if (page != null) + return page; + PageVersions pv = null; if (versionNumber == -1) { - // when no version was specified, get the last touched page for given page id - for (int index = pageVersions.size() - 1; index >= 0; --index) + // when no version was specified, get the last touched page for + // given page id + for (int index = pageVersions.size() - 1; index >= 0; --index) { - if (((PageVersions)pageVersions.get(index)).pageid == id) + if (((PageVersions)pageVersions.get(index)).pageid == id) { pv = (PageVersions)pageVersions.get(index); versionNumber = pv.versionid; @@ -169,7 +180,7 @@ { // ask the page store if it is ready saving the page. getStore().pageAccessed(sessionId, page); - pages.put(id,page); + pages.put(id, page); return page; } } @@ -178,7 +189,7 @@ int ajaxVersionNumber = 0; if (pv == null) { - int index = pageVersions.indexOf(new PageVersions(id, versionNumber,-1)); + int index = pageVersions.indexOf(new PageVersions(id, versionNumber, -1)); if (index != -1) { pv = (PageVersions)pageVersions.get(index); @@ -189,14 +200,18 @@ ajaxVersionNumber = pv.ajaxversionid; } lastPage = null; - page = getStore().getPage(sessionId, getName(), id, versionNumber, ajaxVersionNumber); - pages.put(id,page); + page = getStore().getPage(sessionId, getName(), id, versionNumber, + ajaxVersionNumber); + pages.put(id, page); return page; - + } return null; } + /** + * @see org.apache.wicket.PageMap#put(org.apache.wicket.Page) + */ public void put(Page page) { if (!page.isPageStateless()) @@ -207,8 +222,9 @@ getStore().storePage(sessionId, page); lastPage = page; dirty(); - - PageVersions pv = new PageVersions(page.getNumericId(),page.getCurrentVersionNumber(),page.getAjaxVersionNumber()); + + PageVersions pv = new PageVersions(page.getNumericId(), page + .getCurrentVersionNumber(), page.getAjaxVersionNumber()); pageVersions.remove(pv); pageVersions.add(pv); if (pageVersions.size() > 100) @@ -218,7 +234,7 @@ } } } - + /** * @see org.apache.wicket.PageMap#clear() */ @@ -228,10 +244,13 @@ String sessionId = getSession().getId(); if (sessionId != null) { - getStore().removePage(sessionId, getName(),-1); + getStore().removePage(sessionId, getName(), -1); } } + /** + * @see org.apache.wicket.PageMap#removeEntry(org.apache.wicket.session.pagemap.IPageMapEntry) + */ public void removeEntry(IPageMapEntry entry) { String sessionId = getSession().getId(); @@ -245,22 +264,22 @@ { return ((SecondLevelCacheSessionStore)Application.get().getSessionStore()).getStore(); } - - private static class PageVersions implements IClusterable + + private static class PageVersions implements IClusterable { private static final long serialVersionUID = 1L; - + private final int pageid; private int versionid; private int ajaxversionid; - + PageVersions(int pageid, int versionid, int ajaxversionid) { this.pageid = pageid; this.versionid = versionid; this.ajaxversionid = ajaxversionid; } - + /** * @see java.lang.Object#equals(java.lang.Object) */ @@ -268,12 +287,12 @@ { if (obj instanceof PageVersions) { - return ((PageVersions)obj).pageid == pageid && - ((PageVersions)obj).versionid == versionid; + return ((PageVersions)obj).pageid == pageid + && ((PageVersions)obj).versionid == versionid; } return false; } - + /** * @see java.lang.Object#hashCode() */ @@ -284,6 +303,9 @@ } } + /** + * version manager for this session store. + */ private static final class SecondLevelCachePageVersionManager implements IPageVersionManager { private static final long serialVersionUID = 1L; @@ -449,8 +471,8 @@ // current page version. if (ajaxNumber >= numberOfVersions) { - return store.getPage(sessionId, page.getPageMapName(), page - .getNumericId(), versionNumber, ajaxNumber - numberOfVersions); + return store.getPage(sessionId, page.getPageMapName(), page.getNumericId(), + versionNumber, ajaxNumber - numberOfVersions); } else { @@ -463,11 +485,12 @@ { // currently it is not supported to jump over 2 // pages.... - log.error("trying to rollback to many versions, jumping over 2 page versions is not supported yet."); + log + .error("trying to rollback to many versions, jumping over 2 page versions is not supported yet."); return null; } - return store.getPage(sessionId, page.getPageMapName(), page - .getNumericId(), versionNumber, ajaxNumber); + return store.getPage(sessionId, page.getPageMapName(), page.getNumericId(), + versionNumber, ajaxNumber); } } @@ -490,10 +513,10 @@ } } - + static final ThreadLocal usedPages = new ThreadLocal(); - private IPageStore pageStore; + private final IPageStore pageStore; /** * Construct. @@ -510,7 +533,8 @@ this.pageStore = pageStore; - // turn automatic multi window support off by default, as we don't really + // turn automatic multi window support off by default, as we don't + // really // need to be afraid to run out of history with this implementation. // note that the session store is created before Application#init is // called, so if users set this setting explicitly, it'll be overridden @@ -536,6 +560,7 @@ super.onEndRequest(request); usedPages.set(null); } + /** * @see org.apache.wicket.protocol.http.AbstractHttpSessionStore#destroy() */