Class UBQualifier.LessThanLengthOf
- Enclosing class:
- UBQualifier
- 
Nested Class SummaryNested classes/interfaces inherited from class org.checkerframework.checker.index.upperbound.UBQualifierUBQualifier.LessThanLengthOf, UBQualifier.UpperBoundLiteralQualifier, UBQualifier.UpperBoundUnknownQualifier
- 
Method SummaryModifier and TypeMethodDescriptionReturns the AnnotationMirror that represents this qualifier.Returns the @SubstringIndexForAnnotationMirror from the Substring Index hierarchy that imposes the same upper bounds on the annotated expression as this qualifier.divide(int divisor) If divisor == 1, return this object.booleanglb(UBQualifier other) inthashCode()booleanhasSequenceWithOffset(String sequence, int offset) Returns whether or not this qualifier has sequence with the specified offset.booleanhasSequenceWithOffset(String sequence, String offset) Returns whether or not this qualifier has sequence with the specified offset.booleanisLessThanLengthOf(String sequence) Is a value with this type less than the length of the sequence?booleanisLessThanLengthOfAny(List<String> sequences) Is a value with this type less than the length of any of the sequences?booleanbooleanisLessThanOrEqualTo(String sequence) Is a value with this type less than or equal to the length of sequence?booleanisSubtype(UBQualifier superType) If superType is Unknown, return true.booleanisValidReplacement(String sequence, String replacementSequence, UBQualifier.LessThanLengthOf other) Checks whether replacing sequence with replacementSequence in this qualifier creates replacementSequence entry in other.booleanisValuePlusOffsetLessThanMinLen(String sequence, long value, int minlen) lub(UBQualifier other) If other is Unknown, return Unknown.minusOffset(int value) Adds the negation of value as an offset to a copy of this qualifier.minusOffset(Node node, UpperBoundAnnotatedTypeFactory factory) Adds node as a negative offset to a copy of this qualifier.plusOffset(int value) Adds value as an offset to a copy of this qualifier.plusOffset(Node node, UpperBoundAnnotatedTypeFactory factory) Adds node as an offset to a copy of this qualifier.removeOffset(String sequence, int offset) Generates a new UBQualifer without the given (sequence, offset) pair.removeSequenceLengthAccess(List<String> sequences) Returns a copy of this qualifier with sequence-offset pairs where in the original the offset contains an access of an sequence length insequences.removeSequenceLengthAccessAndNeg1(List<String> sequences) Returns a copy of this qualifier with sequence-offset pairs where in the original the offset contains an access of an sequence length insequences.toString()Methods inherited from class org.checkerframework.checker.index.upperbound.UBQualifiercreateUBQualifier, createUBQualifier, createUBQualifier, createUBQualifier, createUBQualifier, createUBQualifier, isBottom, isLiteral, isPoly, isUnknown
- 
Method Details- 
hasSequenceWithOffsetDescription copied from class:UBQualifierReturns whether or not this qualifier has sequence with the specified offset.- Overrides:
- hasSequenceWithOffsetin class- UBQualifier
- Parameters:
- sequence- sequence expression
- offset- the offset being looked for
- Returns:
- whether or not this qualifier has sequence with the specified offset
 
- 
hasSequenceWithOffsetDescription copied from class:UBQualifierReturns whether or not this qualifier has sequence with the specified offset.- Overrides:
- hasSequenceWithOffsetin class- UBQualifier
- Parameters:
- sequence- sequence expression
- offset- the offset being looked for
- Returns:
- whether or not this qualifier has sequence with the specified offset
 
- 
isLessThanOrEqualToIs a value with this type less than or equal to the length of sequence?- Overrides:
- isLessThanOrEqualToin class- UBQualifier
- Parameters:
- sequence- a String sequence
- Returns:
- true if a value with this type is less than or equal to the length of sequence
 
- 
isLessThanLengthOfAnyIs a value with this type less than the length of any of the sequences?- Overrides:
- isLessThanLengthOfAnyin class- UBQualifier
- Parameters:
- sequences- list of sequences
- Returns:
- true if a value with this type is less than the length of any of the sequences
 
- 
isLessThanLengthOfIs a value with this type less than the length of the sequence?- Overrides:
- isLessThanLengthOfin class- UBQualifier
- Parameters:
- sequence- a String sequence
- Returns:
- true if a value with this type is less than the length of the sequence
 
- 
convertToAnnotationReturns the AnnotationMirror that represents this qualifier. If possible, AnnotationMirrors using @LTEqLengthOfor @LTOMLengthOfare returned. Otherwise, @LTLengthOfis used.The returned annotation is canonicalized by sorting its arguments by sequence and then offset. This is so that AnnotationUtils.areSame(AnnotationMirror, AnnotationMirror)returns true for equivalent annotations.- Parameters:
- env- a processing environment used to build the returned annotation
- Returns:
- the AnnotationMirror that represents this qualifier
 
- 
convertToSubstringIndexAnnotationReturns the @SubstringIndexForAnnotationMirror from the Substring Index hierarchy that imposes the same upper bounds on the annotated expression as this qualifier. However, the upper bounds represented by this qualifier do not apply to the value -1 which is always allowed by the returned annotation.- Parameters:
- env- a processing environment used to build the returned annotation
- Returns:
- the AnnotationMirror from the Substring Index hierarchy that represents the same upper bounds as this qualifier
 
- 
equals
- 
hashCodepublic int hashCode()
- 
isLessThanLengthQualifierpublic boolean isLessThanLengthQualifier()- Overrides:
- isLessThanLengthQualifierin class- UBQualifier
 
- 
isSubtypeIf superType is Unknown, return true. If superType is Bottom, return false.Otherwise, return true if this qualifier contains all the sequences in superType, AND for each of the offsets for each sequence in superType, there is an offset in this qualifier for the sequence that is greater than or equal to the super offset. - Specified by:
- isSubtypein class- UBQualifier
- Parameters:
- superType- other qualifier
- Returns:
- whether this qualifier is a subtype of superType
 
- 
lubIf other is Unknown, return Unknown. If other is Bottom, return this.Otherwise lub is computed as follows: 1. Create the intersection of the sets of arrays for this and other. 2. For each sequence in the intersection, get the offsets for this and other. If any offset in this is a less than or equal to an offset in other, then that offset is an offset for the sequence in lub. If any offset in other is a less than or equal to an offset in this, then that offset is an offset for the sequence in lub. - Specified by:
- lubin class- UBQualifier
- Parameters:
- other- to lub with this
- Returns:
- the lub
 
- 
widenUpperBound- Overrides:
- widenUpperBoundin class- UBQualifier
 
- 
glb- Specified by:
- glbin class- UBQualifier
 
- 
plusOffsetAdds node as an offset to a copy of this qualifier. This is done by creating an offset equation for node and then adding that equation to every offset equation in a copy of this object.- Overrides:
- plusOffsetin class- UBQualifier
- Parameters:
- node- a Node
- factory- an AnnotatedTypeFactory
- Returns:
- a copy of this qualifier with node add as an offset
 
- 
minusOffsetAdds node as a negative offset to a copy of this qualifier. This is done by creating a negative offset equation for node and then adding that equation to every offset equation in a copy of this object.- Overrides:
- minusOffsetin class- UBQualifier
- Parameters:
- node- a Node
- factory- an AnnotatedTypeFactory
- Returns:
- a copy of this qualifier with node add as an offset
 
- 
plusOffsetAdds value as an offset to a copy of this qualifier. This is done by adding value to every offset equation in a copy of this object.- Overrides:
- plusOffsetin class- UBQualifier
- Parameters:
- value- int value to add
- Returns:
- a copy of this qualifier with value add as an offset
 
- 
minusOffsetAdds the negation of value as an offset to a copy of this qualifier. This is done by adding the negation ofvalueto every offset equation in a copy of this object.- Overrides:
- minusOffsetin class- UBQualifier
- Parameters:
- value- int value to add
- Returns:
- a copy of this qualifier with value add as an offset
 
- 
removeSequenceLengthAccessReturns a copy of this qualifier with sequence-offset pairs where in the original the offset contains an access of an sequence length insequences. The sequence length access has been removed from the offset. If the original qualifier has no sequence length offsets, then UNKNOWN is returned.- Parameters:
- sequences- access of the length of these sequences are removed
- Returns:
- a copy of this qualifier with some offsets removed
 
- 
removeSequenceLengthAccessAndNeg1Returns a copy of this qualifier with sequence-offset pairs where in the original the offset contains an access of an sequence length insequences. The sequence length access has been removed from the offset. If the offset also has -1 then -1 is also removed.- Parameters:
- sequences- access of the length of these sequences are removed
- Returns:
- a copy of this qualifier with some offsets removed
 
- 
divideIf divisor == 1, return this object.If divisor greater than 1, then return a copy of this object keeping only sequences and offsets where the offset is less than or equal to zero. Otherwise, return UNKNOWN. - Parameters:
- divisor- number to divide by
- Returns:
- the result of dividing a value with this qualifier by divisor
 
- 
isValuePlusOffsetLessThanMinLen
- 
isValidReplacementpublic boolean isValidReplacement(String sequence, String replacementSequence, UBQualifier.LessThanLengthOf other) Checks whether replacing sequence with replacementSequence in this qualifier creates replacementSequence entry in other.
- 
toString
- 
getSequences
- 
removeOffsetGenerates a new UBQualifer without the given (sequence, offset) pair. Other occurrences of the sequence and the offset may remain in the result, but not together.- Parameters:
- sequence- a Java expression representing a string
- offset- an integral offset
- Returns:
- a new UBQualifer without the given sequence and offset
 
 
-