com.vaadin.copilot.
Class ProjectManager
Handles reading and writing files in the project
-
Constructor Summary
ConstructorsConstructorDescriptionProjectManager
(ApplicationConfiguration applicationConfiguration, VaadinSession vaadinSession) Creates a new project manager
-
Method Summary
Modifier and TypeMethodDescriptionfindResource
(String resource) Finds the given resource by name, in any resource folder.
findSourceFolder
(File sourceFile) Finds the source folder where the given file is located.
protected ApplicationConfiguration
getFileForClass
(Class<?> cls) Returns the Java file for the given class.
getFileForClass
(String cls) Returns the Java file for the given class.
Finds the folder where a new Flow view should be created.
Returns the frontend folder.
Finds the folder where Hilla views should be created for the file system router to pick them up.
getJavaPackage
(File sourceFile) Gets the java package for the given source file
Returns the java resource folder.
getProjectRelativeName
(File projectFile) Returns the name of the file, relative to the project root.
Returns the project base folder.
getSourceFile
(ComponentTracker.Location location) Returns the Java file for the given component location.
Returns the source folders for the project.
Gets current theme folder
Gets current theme name
static boolean
isFileInside
(File toCheck, File container) makeAbsolute
(String projectRelativeFilename) makeRelative
(String filename) sanitizeFilename
(String name) Makes a string safe to use as a file name
void
Writes the given content to the given file inside the project.
void
Writes the given content to the given file inside the project.
void
writeFileBase64
(String filename, String undoLabel, String base64Content, boolean renameIfExists)
-
Constructor Details
-
ProjectManager
public ProjectManager(ApplicationConfiguration applicationConfiguration, VaadinSession vaadinSession) throws IOException Creates a new project manager
Parameters:
applicationConfiguration
- the application configurationvaadinSession
- the Vaadin sessionThrows:
IOException
- if the project folder cannot be resolved
-
-
Method Details
-
readFile
Throws:
-
readFile
Throws:
-
readFile
Throws:
-
readLines
Throws:
-
isFileInside
-
writeFile
Writes the given content to the given file inside the project.
If the filename is absolute, it is used as is. Otherwise, it is resolved relative to the project root.
If the file is outside the project, an exception is thrown
Parameters:
filename
- the filename to write to, absolute or relative to the project rootundoLabel
- the undo label for the changecontent
- the content to writeThrows:
IOException
- if the file cannot be written -
writeFile
Writes the given content to the given file inside the project.
If the filename is absolute, it is used as is. Otherwise, it is resolved relative to the project root.
If the file is outside the project, an exception is thrown
Parameters:
file
- the filename to write to, absolute or relative to the project rootundoLabel
- the undo label for the changecontent
- the content to writeThrows:
IOException
- if the file cannot be written -
writeFile
Throws:
-
writeFileBase64
public File writeFileBase64(String filename, String undoLabel, String base64Content, boolean renameIfExists) throws IOException Throws:
-
makeAbsolute
Throws:
-
makeRelative
Throws:
-
getProjectRelativeName
Returns the name of the file, relative to the project root.
Parameters:
projectFile
- the fileReturns:
the relative name of the file
-
getFileForClass
Returns the Java file for the given class.
Parameters:
cls
- the classReturns:
the file for the class
-
getFileForClass
Returns the Java file for the given class.
Parameters:
cls
- the classReturns:
the file for the class
-
getSourceFolders
Returns the source folders for the project.
Returns:
the source folders
-
getSourceFile
Returns the Java file for the given component location.
Parameters:
location
- the component locationReturns:
the file for the class where the component is used
-
getProjectRoot
Returns the project base folder.
The project base folder is the common folder containing all module roots.
Returns:
the project root folder
-
getFrontendFolder
Returns the frontend folder.
Returns:
the frontend folder
-
getJavaResourceFolder
Returns the java resource folder.
Returns:
the java resource folder.
-
getThemeName
Gets current theme name
Returns:
optional theme name
-
getThemeFolder
Gets current theme folder
Returns:
optional theme folder
-
sanitizeFilename
Makes a string safe to use as a file name
Parameters:
name
- the string to processReturns:
the sanitized string
-
getHillaViewsFolder
Finds the folder where Hilla views should be created for the file system router to pick them up.
Returns:
the folder where Hilla views should be created
-
getFlowNewViewFolder
Finds the folder where a new Flow view should be created.
If all views are in the same package/folder, that folder is returned. If views are in different packages, the folder for a common prefix is returned. If no common prefix is found, the folder for the main package is returned.
Returns:
a suitable folder to place a new Flow view in
-
findResource
Finds the given resource by name, in any resource folder.
Parameters:
resource
- the name of the resource to look for -
findSourceFolder
Finds the source folder where the given file is located.
Parameters:
sourceFile
- the source file to find the source folder for -
getVaadinSession
-
getApplicationConfiguration
-
getJavaPackage
Gets the java package for the given source file
Parameters:
sourceFile
- the source fileReturns:
the java package for the given source file, or null if the source file is not inside the project
Throws:
IOException
- if something goes wrong
-