package javax.safetycritical.annotate; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.CLASS; import java.lang.annotation.Retention; import java.lang.annotation.Target; /** * This annotation distinguishes constructors that must be present in * the public API because of the inheritance hierarchy under which * certain classes of javax.safetycritical are defined as subclasses * of existing infrastructure. Marking a constructor as * SCJProtected instead of as SCJAllowed indicates that the * constructor may only be called from infrastructure code and shall * not be called directly from user code. */ @Retention(CLASS) @Target({CONSTRUCTOR, METHOD}) public @interface SCJProtected { public Level value() default Level.LEVEL_0; }