public class IndexUtil extends Object
Constructor and Description |
---|
IndexUtil() |
Modifier and Type | Method and Description |
---|---|
static Long |
getExactValue(Tree tree,
ValueAnnotatedTypeFactory factory)
Either returns the exact value of the given tree according to the Constant Value Checker, or
null if the exact value is not known.
|
static ExpressionTree |
getLengthSequenceTree(Tree lengthTree,
IndexMethodIdentifier imf,
ProcessingEnvironment processingEnv)
Gets a sequence tree for a length access tree, or null if it is not a length access.
|
static Long |
getMaxValue(Tree tree,
ValueAnnotatedTypeFactory factory)
Finds the maximum value in a Value Checker type.
|
static int |
getMinLen(Tree tree,
ValueAnnotatedTypeFactory valueAnnotatedTypeFactory)
Queries the Value Checker to determine if there is a known minimum length for the array
represented by
tree . |
static Integer |
getMinLenFromTree(Tree tree,
ValueAnnotatedTypeFactory valueATF)
Looks up the minlen of a member select tree.
|
static Long |
getMinValue(Tree tree,
ValueAnnotatedTypeFactory factory)
Finds the minimum value in a Value Checker type.
|
static Range |
getPossibleValues(AnnotatedTypeMirror valueType,
ValueAnnotatedTypeFactory valueAnnotatedTypeFactory)
Returns a range representing the possible integral values represented by the passed
AnnotatedTypeMirror . |
static List<String> |
getValueOfAnnotationWithStringArgument(AnnotationMirror anno)
Gets the value field of an annotation with a list of strings in its value field.
|
static boolean |
isSequenceType(TypeMirror type)
Determines whether the type is a sequence supported by this checker.
|
public static List<String> getValueOfAnnotationWithStringArgument(AnnotationMirror anno)
For the Index Checker, this will get a list of array names from an Upper Bound or SameLen annotation. making this safe to call on any Upper Bound or SameLen annotation.
public static Range getPossibleValues(AnnotatedTypeMirror valueType, ValueAnnotatedTypeFactory valueAnnotatedTypeFactory)
AnnotatedTypeMirror
. If the passed AnnotatedTypeMirror
does not contain an IntRange
annotation or an IntVal
annotation, returns null.public static Long getExactValue(Tree tree, ValueAnnotatedTypeFactory factory)
public static Long getMinValue(Tree tree, ValueAnnotatedTypeFactory factory)
public static Long getMaxValue(Tree tree, ValueAnnotatedTypeFactory factory)
public static int getMinLen(Tree tree, ValueAnnotatedTypeFactory valueAnnotatedTypeFactory)
tree
. If not, returns 0.public static boolean isSequenceType(TypeMirror type)
public static ExpressionTree getLengthSequenceTree(Tree lengthTree, IndexMethodIdentifier imf, ProcessingEnvironment processingEnv)
public static Integer getMinLenFromTree(Tree tree, ValueAnnotatedTypeFactory valueATF)