Dain Sundstrom wrote:
> My guess is we're going to need to add an event notification system to
> the Session APIs. What do you think about just crib off of the servlet
> ones. I think we could just smash the three session listener
> interfaces into something like this:
>
> public interface SessionListener extends Listener {
> void valueBound(SessionEvent event);
> void valueUnbound(SessionEvent event);
> void attributeAdded(SessionEvent event);
> void attributeRemoved(SessionEvent event);
> void attributeRemoved(SessionEvent event);
I think you mean:
void attributeReplaced(SessionEvent event);
> void valueBound(SessionEvent event);
> void valueUnbound(SessionEvent event);
> void sessionCreated(SessionEvent event)
> void sessionDestroyed(SessionEvent event)
> }
>
> public class SessionEvent extends Event {
> Session getSession();
> String getName();
> String getValue();
> }
>
> We would bind a listener with a method on the Locator:
>
> void addSessionListener(SessionListener listener);
> void removeSessionListener(SessionListener listener);
that would certainly do it - the only change I'd like to see
is that the SessionEvent is
public class SessionEvent extends Event {
Session getSession();
String getName();
String getOldValue();
String getNewValue();
}
As it is confusing for remove and replace what getValue() returns.
Also as the bound/unbound events are actually called on the
value itself, you need both old and new values so you can call
unbind and bind during a replace.
cheers