Files
Brainstorm/Foundation/src/com/foundation/clone/ICloneable.java

22 lines
1.3 KiB
Java
Raw Normal View History

2014-05-30 10:31:51 -07:00
/*
* Copyright (c) 2003,2009 Declarative Engineering LLC.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Declarative Engineering LLC
* verson 1 which accompanies this distribution, and is available at
* http://declarativeengineering.com/legal/DE_Developer_License_v1.txt
*/
package com.foundation.clone;
import com.foundation.common.MetadataContainer;
import com.foundation.metadata.CloneContext;
public interface ICloneable extends Cloneable {
public static final MetadataContainer EMPTY_METADATA = new MetadataContainer();
/**
* Creates a clone of the implementing object. A clone is usually a shallow copy of the object, but a clone may be a shallow copy of a composite object as well.
* @param context The optional cloning context which tracks clone creation to prevent duplicate clones to the same object. A context will be created if not supplied.
* @param metadata The metadata used for the cloning. If none is provided, or if an object is encountered for which there is no metadata, then a best guess will be taken (ie all immutable data and part-of data that is available will be cloned).
* @return This instance's clone.
*/
public Object cloneObject(CloneContext context, MetadataContainer metadata);
}//ICloneable//