Package com.vaadin.copilot.javarewriter
Class JavaRewriterUtil
java.lang.Object
com.vaadin.copilot.javarewriter.JavaRewriterUtil
Util methods for rewriting Java
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidAdds an import to the given compilation unit if it is not already imported.static intfindBlockStatementIndex(com.github.javaparser.ast.Node node) Finds the index of the statement that wraps the given node in the closest block statement.static com.github.javaparser.ast.body.FieldDeclarationfindFieldDeclaration(com.github.javaparser.ast.Node nodeInClass, String fieldName) Finds the field declaration for the given field name in the class of the given node.static StringfindFreeVariableName(JavaRewriter.ComponentInfo componentInfo, com.github.javaparser.ast.stmt.BlockStmt block) Finds a free variable name based on the component type.static StringfindFreeVariableName(String base, com.github.javaparser.ast.stmt.BlockStmt block) Finds a free variable name based on the given base name.static List<com.github.javaparser.ast.expr.MethodCallExpr>findMethodCallNonStatements(JavaRewriter.ComponentInfo componentDefinition) static List<com.github.javaparser.ast.expr.MethodCallExpr>findMethodCallStatements(JavaRewriter.ComponentInfo componentDefinition) static List<com.github.javaparser.ast.expr.Expression>findParameterUsage(JavaRewriter.ComponentInfo componentDefinition) static Optional<com.github.javaparser.ast.expr.Expression>findReference(com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression> nodes, JavaRewriter.ComponentInfo componentDefinition) Finds a node among the nodes which refer to the given component.static ObjectfromExpression(com.github.javaparser.ast.expr.Expression arg, com.github.javaparser.resolution.types.ResolvedType expectedType) Parses the given expression and returns the object it represents.static Class<?>Finds the class for the given source type.static StringgetFieldOrVariableName(JavaRewriter.ComponentInfo componentInfo) Gets the field or local variable name for the given component.static StringgetJavaIdentifier(String str) Converts the given string into a valid Java identifier.static JavaRewriter.SetterAndValuegetSetterAndValue(Class<?> componentType, String property, Object value) Gets the setter name and value for the given component type, property and value.static StringgetSetterName(String property, Class<?> type, boolean includeReactConversions) Gets the setter name for the given property.static booleanChecks if the given component type has the given method.static booleanhasSingleParameterMethod(Class<? extends Component> type, String func) Checks if the given component type has a method with the given name, taking one parameter.static booleanonSameLine(com.github.javaparser.ast.Node node1, com.github.javaparser.ast.Node node2) Checks if the two nodes are on the same line.static booleanremoveArgumentCalls(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, List<? extends com.github.javaparser.ast.expr.Expression> argumentsToRemove, boolean removeMethodIfNoArgs) static voidremoveArgumentCalls(List<com.github.javaparser.ast.expr.MethodCallExpr> methods, List<? extends com.github.javaparser.ast.expr.Expression> argumentsToRemove, boolean removeMethodIfNoArgs) static booleanremoveFromStringConcatenation(com.github.javaparser.ast.Node node) Removes the given node from a string concatenation expression.static voidremoveStatement(com.github.javaparser.ast.Node node) Removes the statement that wraps the given node.
-
Method Details
-
fromExpression
public static Object fromExpression(com.github.javaparser.ast.expr.Expression arg, com.github.javaparser.resolution.types.ResolvedType expectedType) Parses the given expression and returns the object it represents.If the argument is a null literal, it is returned as is. Method call expressions are also returned as is.
- Parameters:
arg- the expression to parseexpectedType- the expected type of the object or null if unknown- Returns:
- the object represented by the expression
-
findMethodCallStatements
public static List<com.github.javaparser.ast.expr.MethodCallExpr> findMethodCallStatements(JavaRewriter.ComponentInfo componentDefinition) -
findMethodCallNonStatements
public static List<com.github.javaparser.ast.expr.MethodCallExpr> findMethodCallNonStatements(JavaRewriter.ComponentInfo componentDefinition) -
findParameterUsage
public static List<com.github.javaparser.ast.expr.Expression> findParameterUsage(JavaRewriter.ComponentInfo componentDefinition) -
hasSingleParameterMethod
Checks if the given component type has a method with the given name, taking one parameter.- Parameters:
type- The component typefunc- The method name- Returns:
trueif the method exists,falseotherwise
-
findBlockStatementIndex
public static int findBlockStatementIndex(com.github.javaparser.ast.Node node) Finds the index of the statement that wraps the given node in the closest block statement.- Parameters:
node- The node to find the wrapping statement for- Returns:
- The index of the statement in the block statement
-
findFreeVariableName
public static String findFreeVariableName(JavaRewriter.ComponentInfo componentInfo, com.github.javaparser.ast.stmt.BlockStmt block) Finds a free variable name based on the component type.- Parameters:
componentInfo- The component infoblock- The block the variable will be used in- Returns:
- A free variable name
-
findFreeVariableName
public static String findFreeVariableName(String base, com.github.javaparser.ast.stmt.BlockStmt block) Finds a free variable name based on the given base name.- Parameters:
base- The base nameblock- The block the variable will be used in- Returns:
- A free variable name
-
removeStatement
public static void removeStatement(com.github.javaparser.ast.Node node) Removes the statement that wraps the given node.- Parameters:
node- the node to remove
-
removeFromStringConcatenation
public static boolean removeFromStringConcatenation(com.github.javaparser.ast.Node node) Removes the given node from a string concatenation expression.- Parameters:
node- the node to remove- Returns:
trueif the node was removed,falseotherwise
-
findReference
public static Optional<com.github.javaparser.ast.expr.Expression> findReference(com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression> nodes, JavaRewriter.ComponentInfo componentDefinition) Finds a node among the nodes which refer to the given component.- Parameters:
nodes- the nodes to searchcomponentDefinition- the component definition- Returns:
- the first node that refers to the component, if any
-
findFieldDeclaration
public static com.github.javaparser.ast.body.FieldDeclaration findFieldDeclaration(com.github.javaparser.ast.Node nodeInClass, String fieldName) Finds the field declaration for the given field name in the class of the given node.- Parameters:
nodeInClass- the node in the classfieldName- the field name- Returns:
- the field declaration
- Throws:
IllegalArgumentException- if the field is not found
-
onSameLine
public static boolean onSameLine(com.github.javaparser.ast.Node node1, com.github.javaparser.ast.Node node2) Checks if the two nodes are on the same line.- Parameters:
node1- the first nodenode2- the second node- Returns:
trueif the nodes are on the same line,falseotherwise
-
getSetterAndValue
public static JavaRewriter.SetterAndValue getSetterAndValue(Class<?> componentType, String property, Object value) Gets the setter name and value for the given component type, property and value.- Parameters:
componentType- the component typeproperty- the propertyvalue- the value- Returns:
- the setter name and value
-
getSetterName
Gets the setter name for the given property.- Parameters:
property- the propertytype- the component typeincludeReactConversions- whether to include React property name conversions in the setter name- Returns:
- the setter name
-
getFieldOrVariableName
Gets the field or local variable name for the given component.- Parameters:
componentInfo- the component info- Returns:
- the field or local variable name
-
addImport
public static void addImport(com.github.javaparser.ast.CompilationUnit compilationUnit, String qualifiedName) Adds an import to the given compilation unit if it is not already imported.- Parameters:
compilationUnit- the compilation unitqualifiedName- the qualified name of the import
-
getJavaIdentifier
Converts the given string into a valid Java identifier.- Parameters:
str- the string- Returns:
- the Java identifier
-
hasMethod
Checks if the given component type has the given method.- Parameters:
type- the component typemethodName- the method to check for- Returns:
trueif the component has the method,falseotherwise
-
getClass
Finds the class for the given source type.- Parameters:
name- the class name- Returns:
- the class for the given name
- Throws:
IllegalArgumentException- if the class is not found
-
removeArgumentCalls
-
removeArgumentCalls
public static boolean removeArgumentCalls(com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, List<? extends com.github.javaparser.ast.expr.Expression> argumentsToRemove, boolean removeMethodIfNoArgs)
-