package org.fenixedu.bennu.core.bootstrap.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* <p>
* Methods annotated with {@link Bootstrap} will be invoked whenever the user submits the bootstrap form.
* </p>
*
* <p>
* {@code Bootstrap} methods must be static, and may declare arguments of types annotated with {@link Section}.
* </p>
*
* <p>
* When the bootstap form is submitted, the sections requested in the method arguments are populated with the values filled by the
* user, and the method is invoked within the context of a write transaction. Each {@link Bootstrapper} class may define multiple
* {@link Bootstrap} methods, and they will all run within the same transaction, meaning that failure of any method will cause the
* whole process to fail.
* </p>
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Bootstrap {
}