Class Util

java.lang.Object
com.vaadin.copilot.Util

public class Util extends Object
  • Constructor Details

    • Util

      public Util()
  • Method Details

    • increaseTrailingNumber

      public static String increaseTrailingNumber(String filename)
      Takes a filename and increases a trailing number on the name (excluding the extension).

      For example, "file1.txt" would return "file2.txt", "file.txt" would return "file1.txt" and "file123.txt" would return "file124.txt". If the filename doesn't end with a number, a 1 is added at the end.

      Parameters:
      filename - the string to increase
      Returns:
      the input string with the trailing number increased by one, or with a 1 added at the end if it didn't end with a number
    • getSinglePackage

      public static File getSinglePackage(File javaSourceFolder)
      Finds the first folder inside the given folder that contains more than one sub-folder.

      Parameters:
      javaSourceFolder - the root java source folder
      Returns:
      the first folder that contains more than one sub-folder
    • titleCase

      public static String titleCase(String input)
      Converts a string to title case.

      For example, "hello world" becomes "Hello World".

      Parameters:
      input - the input string
      Returns:
      the input string converted to title case
    • replaceFolderInPath

      public static Path replaceFolderInPath(Path path, String oldFolderName, String newFolderName, String parentFolder)
      Replaces any folder with the given name in the path with a new folder name.
      Parameters:
      path - the path to modify
      oldFolderName - the name of the folder to replace
      newFolderName - the name of the folder to replace with
      parentFolder - the name of the folder containing the folder to replace
      Returns:
      the modified path
    • findCommonAncestor

      public static Optional<Path> findCommonAncestor(List<Path> paths)
      Finds the common ancestor path for the given paths.

      For instance if you pass in /foo/bar/baz and /foo/bar, this returns /foo/bar

      Parameters:
      paths - the paths to process
      Returns:
      the common ancestor path
    • findCurrentViewFile

      public static Optional<File> findCurrentViewFile(com.vaadin.flow.server.VaadinSession session, com.fasterxml.jackson.databind.JsonNode currentView)
      Finds a file related to the current view, to be able to determine which folder / project module to create new files in.
      Parameters:
      session - the vaadin session to use
      currentView - JSON data for the current view, with either "viewFile" pointing to a Hilla view file or "uiId" refering to an open Flow UI
      Returns:
      a file (Java or TSX) used for the current view
    • findCurrentModule

      public static Optional<JavaSourcePathDetector.ModuleInfo> findCurrentModule(com.vaadin.flow.server.VaadinSession session, com.fasterxml.jackson.databind.JsonNode currentView)
      Finds the module where the (first of) currently open view(s) is defined.
      Parameters:
      session - the vaadin session to use
      currentView - JSON data for the current view, with either "viewFile" pointing to a Hilla view file or "uiId" referring to an open Flow UI
      Returns:
      the module where the current view is defined
    • getGetterName

      public static String getGetterName(String propertyName, String javaType)
      Generates the getter method name for a given property.
      Parameters:
      propertyName - the name of the property
      javaType - the Java type of the property
      Returns:
      the getter method name
    • getSetterName

      public static String getSetterName(String propertyName)
      Generates the setter method name for a given property.
      Parameters:
      propertyName - the name of the property
      Returns:
      the setter method name
    • getFilenameFromClassName

      public static String getFilenameFromClassName(String className)
      Converts a fully qualified class name to a filename.
      Parameters:
      className - the fully qualified class name
      Returns:
      the filename corresponding to the class name
    • getClassNameFromFilename

      public static String getClassNameFromFilename(Path filename, Path sourceFolder)
    • getPackageName

      public static String getPackageName(String className)
      Extracts the package name from a fully qualified class name.
      Parameters:
      className - the fully qualified class name
      Returns:
      the package name
    • getSimpleName

      public static String getSimpleName(String className)
      Extracts the simple class name from a fully qualified class name.
      Parameters:
      className - the fully qualified class name
      Returns:
      the simple class name
    • findFeaturePackage

      public static String findFeaturePackage(String viewPackage, String mainPackage)
    • getJavaPackages

      public static List<String> getJavaPackages(Path sourceFolder)
    • listAllFolders

      public static List<Path> listAllFolders(Path startPath)
    • decideEntityPackage

      public static String decideEntityPackage(JavaSourcePathDetector.ModuleInfo moduleInfo, Path referenceFile, String mainPackage)
    • decideRepositoryPackage

      public static String decideRepositoryPackage(JavaSourcePathDetector.ModuleInfo moduleInfo, Path referenceFile, String mainPackage)
    • decideServicePackage

      public static String decideServicePackage(JavaSourcePathDetector.ModuleInfo moduleInfo, Path referenceFile, String mainPackage)
    • getParameterTypes

      public static List<JavaReflectionUtil.ParameterTypeInfo> getParameterTypes(Method method)
      Gets the parameter types of a method.
      Parameters:
      method - the method to get parameter types for
      Returns:
      a list of parameter types
    • getRelativeName

      public static String getRelativeName(File projectFile, File folder)
      Returns the name of the file, relative to the given folder.
      Parameters:
      projectFile - the file
      folder - the folder to make relative to
      Returns:
      the relative name of the file
    • isFileInside

      public static boolean isFileInside(File toCheck, File container)
      Checks if a file is inside a container folder.
      Parameters:
      toCheck - the file to check
      container - the container folder
      Returns:
      true if the file is inside the container folder
    • insertLines

      public static String insertLines(String text, List<Integer> lineNumbers, String toInsert)
      Inserts the given string on the given line numbers in the given text
    • truncate

      public static String truncate(String str, int i)
    • escapeSingleQuote

      public static String escapeSingleQuote(String value)