Class JavaParserUtil
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Visitor that combines added String literals, seeconcatenateAddedStringLiterals(com.github.javaparser.ast.Node)
. -
Field Summary
Modifier and TypeFieldDescriptionstatic final com.github.javaparser.ParserConfiguration.LanguageLevel
The Language Level to use when parsing if a specific level isn't applied. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
clearAnnotations
(com.github.javaparser.ast.Node node) Side-effectsnode
by removing all annotations from anywhere inside its subtree.static void
concatenateAddedStringLiterals
(com.github.javaparser.ast.Node node) Side-effects node by combining any added String literals in node's subtree into their concatenation.static com.github.javaparser.ParserConfiguration.LanguageLevel
Returns theParserConfiguration.LanguageLevel
corresponding to the current source version.static String
getFullyQualifiedName
(com.github.javaparser.ast.body.TypeDeclaration<?> type, com.github.javaparser.ast.CompilationUnit compilationUnit) Returns the fully qualified name of a type appearing in a given compilation unit.static com.github.javaparser.ast.body.TypeDeclaration<?>
getTypeDeclarationByName
(com.github.javaparser.ast.CompilationUnit root, String name) Given the compilation unit node for a source file, returns the top level type definition with the given name.static com.github.javaparser.ast.CompilationUnit
parseCompilationUnit
(File file) Parses the Java code contained in theFile
and returns aCompilationUnit
that represents it.static com.github.javaparser.ast.CompilationUnit
parseCompilationUnit
(InputStream inputStream) Parses the Java code contained in theInputStream
and returns aCompilationUnit
that represents it.static com.github.javaparser.ast.CompilationUnit
parseCompilationUnit
(String javaSource) Parses the Java code contained in theString
and returns aCompilationUnit
that represents it.static com.github.javaparser.ast.expr.Expression
parseExpression
(String expression) Parses theexpression
and returns anExpression
that represents it.static com.github.javaparser.ast.expr.Expression
parseExpression
(String expression, com.github.javaparser.ParserConfiguration.LanguageLevel languageLevel) Parses theexpression
and returns anExpression
that represents it.static com.github.javaparser.ast.StubUnit
parseStubUnit
(InputStream inputStream) Parses the stub file contained in theInputStream
and returns aStubUnit
that represents it.
-
Field Details
-
DEFAULT_LANGUAGE_LEVEL
public static final com.github.javaparser.ParserConfiguration.LanguageLevel DEFAULT_LANGUAGE_LEVELThe Language Level to use when parsing if a specific level isn't applied. This should be the highest version of Java that the Checker Framework can process.
-
-
Constructor Details
-
JavaParserUtil
public JavaParserUtil()
-
-
Method Details
-
parseCompilationUnit
public static com.github.javaparser.ast.CompilationUnit parseCompilationUnit(InputStream inputStream) Parses the Java code contained in theInputStream
and returns aCompilationUnit
that represents it.This is like
StaticJavaParser.parse
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
inputStream
- the Java source code- Returns:
- CompilationUnit representing the Java source code
- Throws:
com.github.javaparser.ParseProblemException
- if the source code has parser errors
-
parseCompilationUnit
public static com.github.javaparser.ast.CompilationUnit parseCompilationUnit(File file) throws FileNotFoundException Parses the Java code contained in theFile
and returns aCompilationUnit
that represents it.This is like
StaticJavaParser.parse
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
file
- the Java source code- Returns:
- CompilationUnit representing the Java source code
- Throws:
com.github.javaparser.ParseProblemException
- if the source code has parser errorsFileNotFoundException
- if the file was not found
-
parseCompilationUnit
Parses the Java code contained in theString
and returns aCompilationUnit
that represents it.This is like
StaticJavaParser.parse
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
javaSource
- the Java source code- Returns:
- CompilationUnit representing the Java source code
- Throws:
com.github.javaparser.ParseProblemException
- if the source code has parser errors
-
parseStubUnit
Parses the stub file contained in theInputStream
and returns aStubUnit
that represents it.This is like
StaticJavaParser.parse
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
inputStream
- the stub file- Returns:
- StubUnit representing the stub file
- Throws:
com.github.javaparser.ParseProblemException
- if the source code has parser errors
-
parseExpression
Parses theexpression
and returns anExpression
that represents it.This is like
StaticJavaParser.parseExpression
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
expression
- the expression string- Returns:
- the parsed expression
- Throws:
com.github.javaparser.ParseProblemException
- if the expression has parser errors
-
parseExpression
public static com.github.javaparser.ast.expr.Expression parseExpression(String expression, com.github.javaparser.ParserConfiguration.LanguageLevel languageLevel) Parses theexpression
and returns anExpression
that represents it.This is like
StaticJavaParser.parseExpression
, but it does not lead to memory leaks because it creates a new instance of JavaParser each time it is invoked. Re-usingStaticJavaParser
causes memory problems because it retains too much memory.- Parameters:
expression
- the expression stringlanguageLevel
- the language level to use when parsing the Java source- Returns:
- the parsed expression
- Throws:
com.github.javaparser.ParseProblemException
- if the expression has parser errors
-
getTypeDeclarationByName
public static com.github.javaparser.ast.body.TypeDeclaration<?> getTypeDeclarationByName(com.github.javaparser.ast.CompilationUnit root, String name) Given the compilation unit node for a source file, returns the top level type definition with the given name.- Parameters:
root
- compilation unit to searchname
- name of a top level type declaration inroot
- Returns:
- a top level type declaration in
root
namedname
-
getFullyQualifiedName
public static String getFullyQualifiedName(com.github.javaparser.ast.body.TypeDeclaration<?> type, com.github.javaparser.ast.CompilationUnit compilationUnit) Returns the fully qualified name of a type appearing in a given compilation unit.- Parameters:
type
- a type declarationcompilationUnit
- the compilation unit containingtype
- Returns:
- the fully qualified name of
type
ifcompilationUnit
contains a package declaration, or just the name oftype
otherwise
-
clearAnnotations
public static void clearAnnotations(com.github.javaparser.ast.Node node) Side-effectsnode
by removing all annotations from anywhere inside its subtree.- Parameters:
node
- a JavaParser Node
-
concatenateAddedStringLiterals
public static void concatenateAddedStringLiterals(com.github.javaparser.ast.Node node) Side-effects node by combining any added String literals in node's subtree into their concatenation. For example, the expression"a" + "b"
becomes"ab"
. This occurs even if, when reading from left to right, the two string literals are not added directly. For example, the expression1 + "a" + "b"
parses as(1 + "a") + "b"
}, but it is transformed into1 + "ab"
.This is the same transformation performed by javac automatically. Javac seems to ignore string literals surrounded in parentheses, so this method does as well.
- Parameters:
node
- a JavaParser Node
-
getCurrentSourceVersion
public static com.github.javaparser.ParserConfiguration.LanguageLevel getCurrentSourceVersion(ProcessingEnvironment env) Returns theParserConfiguration.LanguageLevel
corresponding to the current source version.- Parameters:
env
- processing environment used to get source version- Returns:
- the current source version
-