public abstract class Contract extends Object
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
Contract.ConditionalPostcondition
Represents a conditional postcondition that must be verified by  
BaseTypeVisitor or
 one of its subclasses. | 
static class  | 
Contract.Kind
Enumerates the kinds of contracts. 
 | 
static class  | 
Contract.Postcondition
A postcondition contract. 
 | 
static class  | 
Contract.Precondition
A precondition contract. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
AnnotationMirror | 
annotation
The annotation that must be on the type of expression, according to this contract. 
 | 
AnnotationMirror | 
contractAnnotation
The annotation that expressed this contract; used for diagnostic messages. 
 | 
String | 
expression
The expression for which the condition must hold, such as  
"foo" in
 @RequiresNonNull("foo"). | 
Contract.Kind | 
kind
The kind of contract: precondition, postcondition, or conditional postcondition. 
 | 
| Modifier | Constructor and Description | 
|---|---|
protected  | 
Contract(Contract.Kind kind,
        String expression,
        AnnotationMirror annotation,
        AnnotationMirror contractAnnotation)
Creates a new Contract. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static Contract | 
create(Contract.Kind kind,
      String expression,
      AnnotationMirror annotation,
      AnnotationMirror contractAnnotation,
      Boolean ensuresQualifierIf)
Creates a new Contract. 
 | 
boolean | 
equals(@Nullable Object o)  | 
int | 
hashCode()  | 
String | 
toString()  | 
public final String expression
"foo" in
 @RequiresNonNull("foo").
 An annotation like @RequiresNonNull({"a", "b", "c"}) would be represented by
 multiple Contracts.
public final AnnotationMirror annotation
public final AnnotationMirror contractAnnotation
public final Contract.Kind kind
protected Contract(Contract.Kind kind, String expression, AnnotationMirror annotation, AnnotationMirror contractAnnotation)
kind - precondition, postcondition, or conditional postconditionexpression - the Java expression that should have a type qualifierannotation - the type qualifier that expression should havecontractAnnotation - the pre- or post-condition annotation that the programmer wrote;
     used for diagnostic messagespublic static Contract create(Contract.Kind kind, String expression, AnnotationMirror annotation, AnnotationMirror contractAnnotation, Boolean ensuresQualifierIf)
expression - the Java expression that should have a type qualifierannotation - the type qualifier that expression should havecontractAnnotation - the pre- or post-condition annotation that the programmer wrote;
     used for diagnostic messageskind - precondition, postcondition, or conditional postconditionensuresQualifierIf - the ensuresQualifierIf field, for a conditional postcondition