package com.exanimo.utils { /** * * * * @langversion ActionScript 3 * @playerversion Flash 9.0.0 * * @author Matthew Tretter * @since 2008.08.27 * */ public interface ICloneable { /** * * * Creates and returns a copy of this object. The precise meaning of * "copy" may depend on the class of the object. The general intent is * that, for any object x, the expression: * x.clone() != x * will be true, and that the expression: * getQualifiedClassName(x.clone()) == getQualifiedClassName(x) * will be true, but these are not absolute requirements. While it is * typically the case that: * x.clone().equals(x) * will be true, this is not an absolute requirement. * By convention, the returned object should be obtained by calling * super.clone. If a class and all of its superclasses (except Object) * obey this convention, it will be the case that * getQualifiedClassName(x.clone()) == getQualifiedClassName(x). * By convention, the object returned by this method should be * independent of this object (which is being cloned). To achieve this * independence, it may be necessary to modify one or more fields of the * object returned by super.clone before returning it. Typically, this * means copying any mutable objects that comprise the internal "deep * structure" of the object being cloned and replacing the references to * these objects with references to the copies. If a class contains only * primitive fields or references to immutable objects, then it is * usually the case that no fields in the object returned by super.clone * need to be modified. * * @return * a clone of this instance. * * @see http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone() * */ function clone():Object; } }