/*
 ******************************************************************************
 * Copyright (C) 2005, International Business Machines Corporation and        *
 * others. All Rights Reserved.                                               *
 ******************************************************************************
*/
package com.ibm.icu.util;

/**
 * Provides a flexible mechanism for controlling access, without requiring that a class be immutable.
 * Once locked, an object can never be unlocked, so it is thread-safe from that point onward.
 * The implementation of both methods must be synchronized.
 * Once the object has been locked, it must guarantee that no changes can be made to it.
 * Any attempt to alter it must raise an UnsupportedOperationException exception.
 * This means that when the object returns internal objects,
 * or if anyone has references to those internal objects, that those internal objects must either be immutable,
 * or must also raise exceptions if any attempt to modify them is made. Of course, the object can return clones
 * of internal objects, since those are safe. * @author davis
 */
public interface Freezable extends Cloneable {
	/**
	 * Determines whether the object has been locked or not.
	 */
	public boolean isFrozen();
	/**
	 * Locks the object.
	 * @return the object itself.
	 */
	public Object freeze();
	/**
	 * Provides for the clone operation. Any clone is initially unlocked.
	 */
	public Object cloneAsThawed();
}