Class JavaExpressionParseUtil
- java.lang.Object
-
- org.checkerframework.framework.util.JavaExpressionParseUtil
-
public class JavaExpressionParseUtil extends java.lang.ObjectHelper methods to parse a string that represents a restricted Java expression.- See the Checker Framework Manual:
- Writing Java expressions as annotation
arguments, Annotations whose argument is a Java expression
(dependent type annotations)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJavaExpressionParseUtil.JavaExpressionParseExceptionAn exception that indicates a parse error.
-
Field Summary
Fields Modifier and Type Field Description protected static @Regex(1) java.util.regex.PatternANCHORED_PARAMETER_PATTERNAnchored pattern for a formal parameter use; matches a string that is exactly a formal parameter use.protected static java.lang.StringPARAMETER_REGEXRegular expression for a formal parameter use.protected static @Regex(1) java.util.regex.PatternUNANCHORED_PARAMETER_PATTERNUnanchored pattern for a formal parameter use; can be used to find all formal parameter uses.
-
Constructor Summary
Constructors Constructor Description JavaExpressionParseUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intparameterIndex(java.lang.String s)Ifsis exactly a formal parameter, return its 1-based index.static JavaExpressionparse(java.lang.String expression, javax.lang.model.type.TypeMirror enclosingType, @Nullable ThisReference thisReference, @Nullable java.util.List<FormalParameter> parameters, @Nullable com.sun.source.util.TreePath localVarPath, com.sun.source.util.TreePath pathToCompilationUnit, javax.annotation.processing.ProcessingEnvironment env)Parses a string to aJavaExpression.
-
-
-
Field Detail
-
PARAMETER_REGEX
protected static final java.lang.String PARAMETER_REGEX
Regular expression for a formal parameter use.- See Also:
- Constant Field Values
-
ANCHORED_PARAMETER_PATTERN
protected static final @Regex(1) java.util.regex.Pattern ANCHORED_PARAMETER_PATTERN
Anchored pattern for a formal parameter use; matches a string that is exactly a formal parameter use.
-
UNANCHORED_PARAMETER_PATTERN
protected static final @Regex(1) java.util.regex.Pattern UNANCHORED_PARAMETER_PATTERN
Unanchored pattern for a formal parameter use; can be used to find all formal parameter uses.
-
-
Method Detail
-
parse
public static JavaExpression parse(java.lang.String expression, javax.lang.model.type.TypeMirror enclosingType, @Nullable ThisReference thisReference, @Nullable java.util.List<FormalParameter> parameters, @Nullable com.sun.source.util.TreePath localVarPath, com.sun.source.util.TreePath pathToCompilationUnit, javax.annotation.processing.ProcessingEnvironment env) throws JavaExpressionParseUtil.JavaExpressionParseException
Parses a string to aJavaExpression.For most uses, clients should call one of the static methods in
StringToJavaExpressionrather than calling this method directly.- Parameters:
expression- the string expression to parseenclosingType- type of the class that encloses the JavaExpressionthisReference- the JavaExpression to which to parse "this", or null if "this" should not appear in the expressionparameters- list of JavaExpressions to which to parse formal parameter references such as "#2", or null if formal parameter references should not appear in the expressionlocalVarPath- if non-null, the expression is parsed as if it were written at this location; affects only parsing of local variablespathToCompilationUnit- required to use the underlying Javac APIenv- the processing environment- Returns:
expressionas aJavaExpression- Throws:
JavaExpressionParseUtil.JavaExpressionParseException- if the string cannot be parsed
-
parameterIndex
public static int parameterIndex(java.lang.String s)
Ifsis exactly a formal parameter, return its 1-based index. Returns -1 otherwise.- Parameters:
s- a Java expression- Returns:
- the 1-based index of the formal parameter that
srepresents, or -1
-
-