Package com.vaadin.copilot.javarewriter
Class JavaRewriter
java.lang.Object
com.vaadin.copilot.javarewriter.JavaRewriter
Rewrites Java source code to add or replace constructor parameters, method
invocations and more.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic final recordA code snippet to be inserted into the source code.static final recordstatic final recordInformation about a component in the source code.static classRepresents a point in the source code where new code can be inserted.static final recordRepresents a Java component to be added to the source code.static final recordHolder for a setter name and associated valuestatic enumWhere to add a component -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddCall(JavaRewriter.ComponentInfo componentInfo, String function, Object parameter) Adds a function call to the source code.voidaddComponentUsingTemplate(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).booleandelete(JavaRewriter.ComponentInfo componentInfo) Deletes a component from the source code.findComponentInfo(JavaRewriter.ComponentTypeAndSourceLocation typeAndSourceLocation) intgetPropertyValue(JavaRewriter.ComponentInfo componentInfo, String property) Gets the (active) value of a property of a component.protected StringReturns the source code.voidmoveComponent(JavaRewriter.ComponentInfo component, JavaRewriter.ComponentInfo container, JavaRewriter.ComponentInfo reference, JavaRewriter.Where where) Moves a component in the source code.booleanreplaceFunctionCall(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.booleanreplaceOrAddCall(JavaRewriter.ComponentInfo componentInfo, String function, Object parameter) Replaces a function call in the source code, if found, otherwise adds the function call.voidsetAlignment(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 call- Returns:
trueif the replacement was successful,falseotherwise
-
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 function- Returns:
trueif the addition was successful,falseotherwise
-
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 function- Returns:
trueif the replacement was successful,falseotherwise
-
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,
nullis 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 name- Returns:
- 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 delete- Returns:
trueif the deletion was successful,falseotherwise
-
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:
IllegalAccessException
-
getSource
Returns the source code.- Returns:
- the source code
-