/**
* <copyright>
* </copyright>
*
* $Id: CloneCopyPolicy.java,v 1.5 2011/10/25 13:21:26 mtaal Exp $
*/
package org.eclipse.emf.texo.orm.annotations.model.orm;
import org.eclipse.emf.texo.orm.annotator.BaseOrmAnnotation;
/**
* <!-- begin-user-doc --> A representation of the model object '<em><b>Clone Copy Policy</b></em>'. <!-- end-user-doc
* -->
*
* <!-- begin-model-doc -->
*
* * * A CloneCopyPolicy is used to set an * org.eclipse.persistence.descriptors.copying.CloneCopyPolicy on an * Entity.
* A CloneCopyPolicy must specify at one or both of the "method" * or "workingCopyMethod". "workingCopyMethod" is used
* to clone objects * that will be returned to the user as they are registered in * EclipseLink's transactional
* mechanism, the UnitOfWork. "method" will * be used for the clone that is used for comparison in conjunction with *
* EclipseLink's DeferredChangeDetectionPolicy * * A CloneCopyPolicy should be specified on an Entity, MappedSuperclass
* * or Embeddable. * * Example: * @Entity * @CloneCopyPolicy(method="myCloneMethod") * * or: * * @Entity *
*
* @CloneCopyPolicy(method="myCloneMethod", workingCopyMethod="myWorkingCopyCloneMethod") * * or: * * @Entity *
* @CloneCopyPolicy(workingCopyMethodName="myWorkingCopyClone") * public @interface CloneCopyPolicy {
*
* * * (Optional) * Either method or workingCopyMethod must
* be specified this defines * a method that will be used
* to create a clone that will be used * for comparison by
* * EclipseLink's DeferredChangeDetectionPolicy * String
* method();
*
* * * (Optional) * Either method or workingCopyMethod must
* be specified * this defines a method that will be used
* to create a clone that * will be used to create the
* object returned when registering an * Object in an
* EclipseLink UnitOfWork * String workingCopyMethod();
*
* }
*
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>
* {@link org.eclipse.emf.texo.orm.annotations.model.orm.CloneCopyPolicy#getMethod
* <em>Method</em>}</li>
* <li>
* {@link org.eclipse.emf.texo.orm.annotations.model.orm.CloneCopyPolicy#getWorkingCopyMethod
* <em>Working Copy Method</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.emf.texo.orm.annotations.model.orm.OrmPackage#getCloneCopyPolicy()
* @model extendedMetaData="name='clone-copy-policy' kind='empty'"
* @generated
*/
public interface CloneCopyPolicy extends BaseOrmAnnotation {
/**
* Returns the value of the '<em><b>Method</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Method</em>' attribute isn't clear, there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Method</em>' attribute.
* @see #setMethod(String)
* @see org.eclipse.emf.texo.orm.annotations.model.orm.OrmPackage#getCloneCopyPolicy_Method()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='method'"
* @generated
*/
String getMethod();
/**
* Sets the value of the '{@link org.eclipse.emf.texo.orm.annotations.model.orm.CloneCopyPolicy#getMethod <em>Method</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Method</em>' attribute.
* @see #getMethod()
* @generated
*/
void setMethod(String value);
/**
* Returns the value of the '<em><b>Working Copy Method</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Working Copy Method</em>' attribute isn't clear, there really should be more of a
* description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Working Copy Method</em>' attribute.
* @see #setWorkingCopyMethod(String)
* @see org.eclipse.emf.texo.orm.annotations.model.orm.OrmPackage#getCloneCopyPolicy_WorkingCopyMethod()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='working-copy-method'"
* @generated
*/
String getWorkingCopyMethod();
/**
* Sets the value of the '{@link org.eclipse.emf.texo.orm.annotations.model.orm.CloneCopyPolicy#getWorkingCopyMethod <em>Working Copy Method</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Working Copy Method</em>' attribute.
* @see #getWorkingCopyMethod()
* @generated
*/
void setWorkingCopyMethod(String value);
} // CloneCopyPolicy