package org.openflexo.model.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Inherited @Retention(RetentionPolicy.RUNTIME) @Target(value = ElementType.TYPE) public @interface Modify { /** * The property where to forward the "modified" state of this object. This mechanism is recursive, ie, if the value of the forward * property also declares a {@link Modify}, then it will also be triggered. * * @return the name of the property on which the flag modified should also be turned to true. */ public String forward(); /** * Wheter this entity should watch the "modified" state of the value of the property defined by {@link Modify#forward()} and resynch * itself with it, whenever it is changed from <code>true</code> to <code>false</code>. Default value is <code>true</code> * * @return true if this model entity "modified" state should be synch with the property defined by the {@link Modify#forward()}. */ public boolean synchWithForward() default true; }