com.vaadin.copilot.javarewriter.
Class JavaRewriter
Rewrites Java source code to add or replace constructor parameters, method invocations and more.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
static final record
A code snippet to be inserted into the source code.
static final record
static final record
Information about a component in the source code.
static class
Represents a point in the source code where new code can be inserted.
static final record
Represents a Java component to be added to the source code.
static final record
Holder for a setter name and associated value
static enum
Where to add a component
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
addCall
(JavaRewriter.ComponentInfo componentInfo, String function, Object parameter) Adds a function call to the source code.
void
addComponentUsingTemplate
(JavaRewriter.ComponentInfo referenceComponent, JavaRewriter.ComponentInfo layout, JavaRewriter.Where where, List<JavaRewriter.JavaComponent> template) Adds the given code snippet to the source code either before the reference component (Where.BEFORE) or by appending to the layout (Where.APPEND).
boolean
delete
(JavaRewriter.ComponentInfo componentInfo) Deletes a component from the source code.
findComponentInfo
(JavaRewriter.ComponentTypeAndSourceLocation typeAndSourceLocation) int
getPropertyValue
(JavaRewriter.ComponentInfo componentInfo, String property) Gets the (active) value of a property of a component.
protected String
Returns the source code.
void
moveComponent
(JavaRewriter.ComponentInfo component, JavaRewriter.ComponentInfo container, JavaRewriter.ComponentInfo reference, JavaRewriter.Where where) Moves a component in the source code.
boolean
replaceFunctionCall
(JavaRewriter.ComponentInfo componentInfo, String function, Object value) Replaces a constructor parameter (if it is mapped to the given setter function) or a function call in the source code.
boolean
replaceOrAddCall
(JavaRewriter.ComponentInfo componentInfo, String function, Object parameter) Replaces a function call in the source code, if found, otherwise adds the function call.
void
setAlignment
(JavaRewriter.ComponentInfo component, JavaRewriter.AlignmentMode alignmentMode, boolean selected, List<String> lumoClasses)
-
Constructor Details
-
JavaRewriter
Creates a new JavaRewriter instance.
Parameters:
source
- the Java source code to rewrite
-
-
Method Details
-
getResult
-
getFirstModifiedRow
public int getFirstModifiedRow() -
replaceFunctionCall
public boolean replaceFunctionCall(JavaRewriter.ComponentInfo componentInfo, String function, Object value) Replaces a constructor parameter (if it is mapped to the given setter function) or a function call in the source code.
Parameters:
componentInfo
- the component to modifyfunction
- the name of the function to replace or add, if the constructor parameter is not foundvalue
- the new value for the constructor parameter or function callReturns:
true
if the replacement was successful,false
otherwise -
addCall
Adds a function call to the source code.
Parameters:
componentInfo
- the component to modifyfunction
- the name of the function to addparameter
- the parameter for the functionReturns:
true
if the addition was successful,false
otherwise -
replaceOrAddCall
public boolean replaceOrAddCall(JavaRewriter.ComponentInfo componentInfo, String function, Object parameter) Replaces a function call in the source code, if found, otherwise adds the function call.
Parameters:
componentInfo
- the component to modifyfunction
- the name of the function call to add or replaceparameter
- the new parameter for the functionReturns:
true
if the replacement was successful,false
otherwise -
getPropertyValue
Gets the (active) value of a property of a component.
The property value is determined by looking for a setter method call in the source code. If the property is not set using a setter, the constructor is checked.
If the property is not set using a setter or in the constructor,
null
is returned.If the property is set using a method call, the method call expression is returned.
Parameters:
componentInfo
- the component to get the property value fromproperty
- the property nameReturns:
the property value, or null if the property is not set
-
findComponentInfo
public JavaRewriter.ComponentInfo findComponentInfo(JavaRewriter.ComponentTypeAndSourceLocation typeAndSourceLocation) -
delete
Deletes a component from the source code.
Parameters:
componentInfo
- the component to deleteReturns:
true
if the deletion was successful,false
otherwise -
moveComponent
public void moveComponent(JavaRewriter.ComponentInfo component, JavaRewriter.ComponentInfo container, JavaRewriter.ComponentInfo reference, JavaRewriter.Where where) Moves a component in the source code.
Parameters:
component
- the component to movecontainer
- the new container for the component, if where is Where.APPEND.reference
- the reference component to move the component before, if where is Where.BEFORE.where
- where to move the component -
addComponentUsingTemplate
public void addComponentUsingTemplate(JavaRewriter.ComponentInfo referenceComponent, JavaRewriter.ComponentInfo layout, JavaRewriter.Where where, List<JavaRewriter.JavaComponent> template) Adds the given code snippet to the source code either before the reference component (Where.BEFORE) or by appending to the layout (Where.APPEND).
Parameters:
referenceComponent
- the reference component to add the code before, or null if the code should be appended to the layoutlayout
- the layout to append the code towhere
- where to add the codetemplate
- the code to add, as JSON array of objects with "tag", "props" and "children" -
setAlignment
public void setAlignment(JavaRewriter.ComponentInfo component, JavaRewriter.AlignmentMode alignmentMode, boolean selected, List<String> lumoClasses) throws IllegalAccessException Throws:
-
getSource
Returns the source code.
Returns:
the source code
-