package javax.safetycritical.annotate; import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.RetentionPolicy.CLASS; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.METHOD; import static javax.safetycritical.annotate.Phase.ALL; /** */ @Retention(CLASS) @Target({TYPE, METHOD, CONSTRUCTOR}) public @interface SCJRestricted { /** The phase of the mission in which a method may run. */ public Phase phase() default ALL; /** Marks whether or not a method may allocate memory. */ public boolean mayAllocate() default true; /** Marks whether or not a method may execute a blocking operation. */ public boolean maySelfSuspend() default true; }