Package groovy.contracts
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
-
Element Details
-
value
Class value
-