Class FieldInvariants
java.lang.Object
org.checkerframework.framework.util.FieldInvariants
Represents field invariants, which the user states by writing
@FieldInvariant. Think of
this as a set of (field, qualifier) pairs.
A FieldInvariants object may be malformed (inconsistent number of fields and qualifiers). In this case, the BaseTypeVisitor will issue an error.
-
Constructor Summary
ConstructorsConstructorDescriptionFieldInvariants(List<String> fields, List<AnnotationMirror> qualifiers) Creates a new FieldInvariants object.FieldInvariants(FieldInvariants other, List<String> fields, List<AnnotationMirror> qualifiers) Creates a new object with all the invariants inother, plus those specified byfieldsandqualifiers. -
Method Summary
Modifier and TypeMethodDescriptionThe simple names of the fields that have a qualifier.getQualifiersFor(CharSequence field) Returns a list of qualifiers forfield.isSuperInvariant(FieldInvariants superInvar, AnnotatedTypeFactory factory) Returns null ifsuperInvaris a super invariant, otherwise returns the error message.booleanReturns true if there is a qualifier for each field infields.
-
Constructor Details
-
FieldInvariants
Creates a new FieldInvariants object. The result is well-formed if length of qualifiers is either 1 or equal to length offields.- Parameters:
fields- list of fieldsqualifiers- list of qualifiers
-
FieldInvariants
public FieldInvariants(FieldInvariants other, List<String> fields, List<AnnotationMirror> qualifiers) Creates a new object with all the invariants inother, plus those specified byfieldsandqualifiers. The result is well-formed if length of qualifiers is either 1 or equal to length offields.- Parameters:
other- other invariant object, may be nullfields- list of fieldsqualifiers- list of qualifiers
-
-
Method Details
-
getFields
The simple names of the fields that have a qualifier. May contain duplicates. -
getQualifiersFor
Returns a list of qualifiers forfield. Iffieldhas no qualifiers, returns an empty list.- Parameters:
field- simple field name- Returns:
- a list of qualifiers for
field, possibly empty
-
isWellFormed
public boolean isWellFormed()Returns true if there is a qualifier for each field infields.- Returns:
- true if there is a qualifier for each field in
fields
-
isSuperInvariant
Returns null ifsuperInvaris a super invariant, otherwise returns the error message.- Parameters:
superInvar- the value to check for being a super invariantfactory- the type factory- Returns:
- null if
superInvaris a super invariant, otherwise returns the error message
-