You're viewing an older version of Vaadin JavaDoc. Please see version 24.7.0 for the latest.
com.vaadin.copilot.javarewriter.

Class JavaRewriter

java.lang.Object
com.vaadin.copilot.javarewriter.JavaRewriter
public class JavaRewriter extends Object

Rewrites Java source code to add or replace constructor parameters, method invocations and more.

  • Field Details

    • compilationUnit

      protected com.github.javaparser.ast.CompilationUnit compilationUnit
  • Constructor Details

    • JavaRewriter

      public JavaRewriter(String source)

      Creates a new JavaRewriter instance.

      Parameters:

      source - the Java source code to rewrite

  • Method Details

    • getResult

      public String getResult()
    • getFirstModifiedRow

      public int getFirstModifiedRow()
    • replaceFunctionCall

      public boolean replaceFunctionCall(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 modify

      function - the name of the function to replace or add, if the constructor parameter is not found

      value - the new value for the constructor parameter or function call

      Returns:

      true if the replacement was successful, false otherwise

    • addCall

      public boolean addCall(ComponentInfo componentInfo, String function, Object... parameters)

      Adds a function call to the source code.

      Parameters:

      componentInfo - the component to modify

      function - the name of the function to add

      parameters - parameters for the function

      Returns:

      true if the addition was successful, false otherwise

    • replaceOrAddCall

      public boolean replaceOrAddCall(ComponentInfo componentInfo, String function, Object... parameters)

      Replaces a function call in the source code, if found, otherwise adds the function call.

      Parameters:

      componentInfo - the component to modify

      function - the name of the function call to add or replace

      parameters - new parameters for the function

      Returns:

      true if the replacement was successful, false otherwise

    • getPropertyValue

      public Object getPropertyValue(ComponentInfo componentInfo, String property)

      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 from

      property - the property name

      Returns:

      the property value, or null if the property is not set

    • findComponentInfo

      public ComponentInfo findComponentInfo(ComponentTypeAndSourceLocation typeAndSourceLocation)

      Finds a component in the source code.

      Note that this will create a constructor if the component is a route class and there are no constructors.

      Parameters:

      typeAndSourceLocation - the type and source location of the component

      Returns:

      the component info

    • delete

      public boolean delete(ComponentInfo componentInfo)

      Deletes a component from the source code.

      Parameters:

      componentInfo - the component to delete

      Returns:

      true if the deletion was successful, false otherwise

    • moveComponent

      public void moveComponent(ComponentInfo component, ComponentInfo container, ComponentInfo reference, JavaRewriter.Where where)

      Moves a component in the source code.

      Parameters:

      component - the component to move

      container - 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

    • duplicate

      public void duplicate(ComponentInfo component)
    • duplicate

      public JavaRewriter.DuplicateInfo duplicate(ComponentInfo component, boolean handleAdd)

      Duplicates a component in the source code.

      Parameters:

      component - the component to duplicate

      handleAdd - true to automatically add the new component next to the old one, false to handle add calls like any other method call

      Returns:

      a map from old component name to new component name

    • addComponentUsingTemplate

      public void addComponentUsingTemplate(ComponentInfo referenceComponent, JavaRewriter.Where where, List<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 (BEFORE) or container (APPEND) to add the code

      where - where to add the code

      template - the code to add, as JSON array of objects with "tag", "props" and "children"

    • setAlignment

      public void setAlignment(ComponentInfo component, JavaRewriter.AlignmentMode alignmentMode, boolean selected, List<String> lumoClasses)
    • setGap

      public void setGap(ComponentInfo component, String newValue)

      Sets gap to selected component

      Parameters:

      component - component to set gap

      newValue - lumo utility gap variable literal.

    • mergeAndReplace

      public void mergeAndReplace(List<ComponentInfo> components, JavaComponent wrapperComponent)

      Merges all the components and wraps them using the given component and places the result in place of the first component.

      Parameters:

      components - The components to merge. The first component will be replaced with the wrapper component

      wrapperComponent - The component to wrap the merged components in.

    • replaceCallParameter

      public void replaceCallParameter(com.github.javaparser.ast.nodeTypes.NodeWithArguments<?> call, String oldVariableName, String newVariableName)

      Replaces a parameter name in a method call.

      Parameters:

      call -

      oldVariableName -

      newVariableName -

    • getSource

      protected String getSource()

      Returns the source code.

      Returns:

      the source code