Constructs a new instance of this class proxying the specified <code>Session</code>.
Immediately {@link #throwImmutableException() throws} an <code>InvalidSessionException</code> in all cases because this proxy is immutable.
Immediately {@link #throwImmutableException() throws} an <code>InvalidSessionException</code> in all cases because this proxy is immutable.
Immediately {@link #throwImmutableException() throws} an <code>InvalidSessionException</code> in all cases because this proxy is immutable.
Immediately {@link #throwImmutableException() throws} an <code>InvalidSessionException</code> in all cases because this proxy is immutable.
Simply<code>InvalidSessionException</code> indicating that this proxy is immutable. Used only in the Session's 'write' methods documented in the top class-level JavaDoc.
Immediately {@link #throwImmutableException() throws} an <code>InvalidSessionException</code> in all cases because this proxy is immutable.
The proxied instance
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Immediately delegates to the underlying proxied session.
Implementation of the {@link Session Session} interface that proxies another <code>Session</code>, but does not allow any 'write' operations to the underlying session. It allows 'read' operations only. <p/> The <code>Session</code> write operations are defined as follows. A call to any of these methods on this proxy will immediately result in an {@link InvalidSessionException} being thrown: <ul> <li>{@link Session#setTimeout(long) Session.setTimeout(long)}</li> <li>{@link Session#touch() Session.touch()}</li> <li>{@link Session#stop() Session.stop()}</li> <li>{@link Session#setAttribute(Object, Object) Session.setAttribute(key,value)}</li> <li>{@link Session#removeAttribute(Object) Session.removeAttribute(key)}</li> </ul> Any other method invocation not listed above will result in a corresponding call to the underlying <code>Session</code>.