package org.corfudb.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;
/** Marks that this method should be execute transactionally.
* Created by mwei on 3/29/16.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface TransactionalMethod {
/** Whether or not this method modifies any objects.
* @return True, if the transaction is read only. */
boolean readOnly() default false;
/** The name of a function that calculates which streams will
* be affected as a result of this transaction. Optional.
* @return The name of the function which calculates stream affected.
*/
String modifiedStreamsFunction() default "";
}