001 package data;
002
003 import java.io.Serializable;
004
005 /**
006 * A name context.
007 *
008 * <p>Name contexts are a policy to shield rename functions. You can think of a name context as a name space
009 * that comes with certain rules that decide validity of names. One rule could be, for example, that names
010 * must be unique in a name context.</p>
011 *
012 * @author Steffen Zschaler
013 * @version 2.0 25/05/1999
014 * @since v2.0
015 */
016 public interface NameContext extends Serializable {
017
018 /**
019 * Check a name change for compliance with the rules of this NameContext.
020 *
021 * <p>If the proposed name change is not valid, a NameContextException is thrown. Otherwise,
022 * <code>checkNameChange</code> simply returns.</p>
023 *
024 * @param db the DataBasket relative to which the name change is to take place.
025 * @param sOldName the name to be changed.
026 * @param sNewName the new name.
027 *
028 * @exception NameContextException if the name change would not be valid.
029 *
030 * @override Always
031 */
032 public void checkNameChange(DataBasket db, String sOldName, String sNewName) throws NameContextException;
033
034 /**
035 * Indicate a successful name change.
036 *
037 * <p>Calls to this method indicate to the NameContext that a name change has been successful. The
038 * NameContext may adjust internal tables or structures here.</p>
039 *
040 * @param db the DataBasket relative to which the name change has taken place.
041 * @param sOldName the old name of the object whose name was changed.
042 * @param sNewName the new name of the object.
043 *
044 * @override Always
045 */
046 public void nameHasChanged(DataBasket db, String sOldName, String sNewName);
047
048 /**
049 * Return an object that can be used as a monitor to synchronize name changes. All changes that can
050 * influence the return value of {@link #checkNameChange} or the execution of {@link #nameHasChanged} must
051 * be synchronized on this monitor.
052 *
053 * @override Always
054 */
055 public Object getNCMonitor();
056 }