Annotation Type Requires


  • @Retention(RUNTIME)
    @Target({CONSTRUCTOR,METHOD})
    @Incubating
    @Precondition
    @AnnotationProcessorImplementation(RequiresAnnotationProcessor.class)
    public @interface Requires

    Represents a method precondition.

    A precondition is a condition that must be met by clients of this class. Whenever the precondition can be satisfied, it is guaranteed that the supplier will fulfil the method's postcondition.

    A method's precondition is executed as the first statement within a method call. A successor's precondition weakens the precondition of its parent class, e.g. if A.someMethod declares a precondition and B.someMethod overrides the method the preconditions are combined with a boolean OR.

    Example:

       @Requires({ argument1 != argument2 && argument2 >= 0 })
       void someOperation(def argument1, def argument2)  {
         ...
       }
     

    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      Class value  
    • Element Detail