/* Copyright (C) 2001 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package javax.naming.event; import javax.naming.*; import java.util.EventObject; /** * @author Warren Levy * @date June 5, 2001 */ public class NamingEvent extends EventObject { public static final int OBJECT_ADDED = 0; public static final int OBJECT_REMOVED = 1; public static final int OBJECT_RENAMED = 2; public static final int OBJECT_CHANGED = 3; // Serialized fields. protected Object changeInfo; protected int type; protected Binding oldBinding; protected Binding newBinding; public NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) { super(source); this.type = type; this.oldBinding = oldBd; this.newBinding = newBd; this.changeInfo = changeInfo; // FIXME: for OBJECT_ADDED, newBd must not be null; // FIXME: for OBJECT_CHANGED, newBd and oldBd must not be null; // FIXME: for OBJECT_RENAMED, one of newBd or oldBd may be null if newBd or // FIXME: oldBd is outside of the scope for which listener has registered. // FIXME: namingExceptionThrown() is called for the listener in question. } public int getType() { return type; } public EventContext getEventContext() { return (EventContext) getSource(); } public Binding getOldBinding() { return oldBinding; } public Binding getNewBinding() { return newBinding; } public Object getChangeInfo() { return changeInfo; } public void dispatch(NamingListener listener) { switch (type) { case OBJECT_ADDED: ((NamespaceChangeListener) listener).objectAdded(this); break; case OBJECT_REMOVED: ((NamespaceChangeListener) listener).objectRemoved(this); break; case OBJECT_RENAMED: ((NamespaceChangeListener) listener).objectRenamed(this); break; case OBJECT_CHANGED: ((ObjectChangeListener) listener).objectChanged(this); break; } } }