Package groovy.contracts
Annotation Type Invariant
@Retention(RUNTIME)
@Target(TYPE)
@Incubating
@ClassInvariant
@Repeatable(Invariants.class)
@AnnotationProcessorImplementation(ClassInvariantAnnotationProcessor.class)
public @interface Invariant
Represents a class-invariant.
The class-invariant defines assertions holding during the entire objects life-time.
Class-invariants are verified at runtime at the following pointcuts:
- after a constructor call
- before a method call
- after a method call
Whenever a class has a parent which itself specifies a class-invariant, that class-invariant expression is combined with the actual class's invariant (by using a logical AND).
-
Required Element Summary
-
Element Details
-
value
Class value
-