Class FieldInvariants
- java.lang.Object
 - 
- org.checkerframework.framework.util.FieldInvariants
 
 
- 
public class FieldInvariants extends java.lang.ObjectRepresents field invariants, which the user states by writing@FieldInvariant. Think of this as a set of (field name, qualifier) pairs.If a FieldInvariants object is malformed (inconsistent number of fields and qualifiers), BaseTypeVisitor will issue an error.
 
- 
- 
Constructor Summary
Constructors Constructor Description FieldInvariants(@Nullable FieldInvariants other, java.util.List<java.lang.String> fields, java.util.List<javax.lang.model.element.AnnotationMirror> qualifiers, AnnotatedTypeFactory atypeFactory)Creates a new object with all the invariants inother, plus those specified byfieldsandqualifiers.FieldInvariants(java.util.List<java.lang.String> fields, java.util.List<javax.lang.model.element.AnnotationMirror> qualifiers, AnnotatedTypeFactory atypeFactory)Creates a new FieldInvariants object. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>getFields()The simple names of the fields that have a qualifier.java.util.List<javax.lang.model.element.AnnotationMirror>getQualifiersFor(java.lang.CharSequence field)Returns a list of qualifiers forfield.@Nullable DiagMessageisStrongerThan(FieldInvariants superInvar)Returns null if this is stronger than the given FieldInvariants, otherwise returns the error message.booleanisWellFormed()Returns true if there is a qualifier for each field infields. 
 - 
 
- 
- 
Constructor Detail
- 
FieldInvariants
public FieldInvariants(java.util.List<java.lang.String> fields, java.util.List<javax.lang.model.element.AnnotationMirror> qualifiers, AnnotatedTypeFactory atypeFactory)Creates a new FieldInvariants object. The result is well-formed if the length of qualifiers is either 1 or equal to length offields.- Parameters:
 fields- list of fieldsqualifiers- list of qualifiers, or a single qualifier that applies to all fieldsatypeFactory- the type factory
 
- 
FieldInvariants
public FieldInvariants(@Nullable FieldInvariants other, java.util.List<java.lang.String> fields, java.util.List<javax.lang.model.element.AnnotationMirror> qualifiers, AnnotatedTypeFactory atypeFactory)
Creates a new object with all the invariants inother, plus those specified byfieldsandqualifiers. The result is well-formed if the length of qualifiers is either 1 or equal to length offields.- Parameters:
 other- other invariant object, may be nullfields- list of fieldsqualifiers- list of qualifiersatypeFactory- the type factory
 
 - 
 
- 
Method Detail
- 
getFields
public java.util.List<java.lang.String> getFields()
The simple names of the fields that have a qualifier. May contain duplicates. 
- 
getQualifiersFor
public java.util.List<javax.lang.model.element.AnnotationMirror> getQualifiersFor(java.lang.CharSequence field)
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 
 
- 
isStrongerThan
public @Nullable DiagMessage isStrongerThan(FieldInvariants superInvar)
Returns null if this is stronger than the given FieldInvariants, otherwise returns the error message. This is stronger if each of its qualifiers is a subtype of (or equal to) the respective qualfier in the given FieldInvariants.- Parameters:
 superInvar- the value to check for being a weaker invariant- Returns:
 - null if this is stronger, otherwise returns an error message
 
 
 - 
 
 -