package com.google.gwt.gwtpages.client; import com.google.gwt.gwtpages.client.page.PageAttributes; /** * The transient session data associate with a page request * * @author Joe Hudson */ public class PageRequestSession extends PageAttributes { private PageAttributes pageAttributes; /** * If the session value exists, return that. Otherwise if alsoCheckPageAttributes=true, * return the page attributes value for that context if exists * @param <R> the object type * @param context the object class * @param alsoCheckPageAttributes true to check page attributes and false if not */ public <R> R get(Class<R> context, boolean alsoCheckPageAttributes) { if (!alsoCheckPageAttributes) return super.get(context); else { R rtn = super.get(context); if (null != rtn || null == pageAttributes) return rtn; else return pageAttributes.get(context); } } /** * If the session value exists, return that. Otherwise if alsoCheckPageAttributes=true, * return the page attributes value for that context if exists * @param <R> the object type * @param key the data key * @param alsoCheckPageAttributes true to check page attributes and false if not */ public Object get(Object key, boolean alsoCheckPageAttributes) { if (!alsoCheckPageAttributes) return super.get(key); else { Object rtn = super.get(key); if (null != rtn || null == pageAttributes) return rtn; else return pageAttributes.get(key); } } void setPageAttributes(PageAttributes pageAttributes) { this.pageAttributes = pageAttributes; } }