/* * @(#) Immutable.java - Tagging interface for immutable objects. * (c) 2000 Ivan Maidanski http://ivmai.chat.ru * Freeware class library sources. All rights reserved. ** * Language: Java [pure] * Tested with: JDK v1.1.6 * Last modified: 2000-12-24 19:30:00 GMT+03:00 */ /* * This software is the proprietary information of the author. ** * Permission to use, copy, and distribute this software and its * documentation for non-commercial purposes and without fee is * hereby granted provided that this copyright notice appears in all * copies. ** * This software should not be modified in any way; any found bug * should be reported to the author. ** * The author disclaims all warranties with regard to this software, * including all implied warranties of merchantability and fitness. * In no event shall the author be liable for any special, indirect * or consequential damages or any damages whatsoever resulting from * loss of use, data or profits, whether in an action of contract, * negligence or other tortuous action, arising out of or in * connection with the use or performance of this software. */ package ivmai.util; /** * Tagging interface for immutable objects. ** * This interface should be implemented by a custom class which * instances have constant (immutable) internal state. This * interface has no methods or fields and serves only to identify * the semantics of being immutable. Here are some important notes * for developers of the classes for immutable objects: such classes * should be declared as final and should not extend * any other classes; they must not have any methods for changing * state of this object; all their variable fields must * never be changed even indirectly (all the fields should be * final); methods synchronization is not needed. ** * @see ReallyCloneable * @see ConstVector * @see UnsignedInt * @see GComparator ** * @version 2.0 * @author Ivan Maidanski ** * @since 2.0 */ public interface Immutable { }