package org.etk.orm.api.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Defines a creator method to create transient instances of a Chromattic entity.
*
* The annotated method can have the following arguments:
* <ul>
* <li>No arguments that returns a transient entity.</li>
* <li>A single <code>String</code> argument that returns a transient entity. That entity has a name
* that is equals to the argument value when the method is invoked.</li>
* </ul>
*
* The type of the of the returned entity is defined by the return type of the method that must be the type
* of a registered instantiatable Chromattic entity.
*
* After the invocation of the method, the status of the entity will be equals to {@link org.chromattic.api.Status#TRANSIENT}.
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Create {
}