Package com.vaadin.copilot
Class ProjectManager
java.lang.Object
com.vaadin.copilot.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.findResourceFolder
(File resourceFile) Finds the resource folder where the given resource is located.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 fileReturns the java resource folder.getProjectRelativeName
(File projectFile) Returns the name of the file, relative to the project root.Returns the project root folder.Returns the resource folders for the project.getSourceFile
(ComponentTracker.Location location) Returns the Java file for the given component location.Returns the source folders for the project.Gets current theme folderGets current theme namestatic boolean
isFileInside
(File toCheck, File container) makeAbsolute
(String projectRelativeFilename) makeRelative
(String filename) sanitizeFilename
(String name) Makes a string safe to use as a file namevoid
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 session- Throws:
IOException
- if the project folder cannot be resolved
-
-
Method Details
-
readFile
- Throws:
IOException
-
readFile
- Throws:
IOException
-
readFile
- Throws:
IOException
-
readLines
- Throws:
IOException
-
isFileInside
- Throws:
IOException
-
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 write- Throws:
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 write- Throws:
IOException
- if the file cannot be written
-
writeFile
- Throws:
IOException
-
writeFileBase64
public File writeFileBase64(String filename, String undoLabel, String base64Content, boolean renameIfExists) throws IOException - Throws:
IOException
-
makeAbsolute
- Throws:
IOException
-
makeRelative
- Throws:
IOException
-
getProjectRelativeName
Returns the name of the file, relative to the project root.- Parameters:
projectFile
- the file- Returns:
- the relative name of the file
-
getFileForClass
Returns the Java file for the given class.- Parameters:
cls
- the class- Returns:
- the file for the class
-
getFileForClass
Returns the Java file for the given class.- Parameters:
cls
- the class- Returns:
- the file for the class
-
getSourceFolders
Returns the source folders for the project.- Returns:
- the source folders
-
getResourceFolders
Returns the resource folders for the project.- Returns:
- the resource folders
-
getSourceFile
Returns the Java file for the given component location.- Parameters:
location
- the component location- Returns:
- the file for the class where the component is used
-
getProjectRoot
Returns the project root folder.- 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 process- Returns:
- 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
- Throws:
IOException
-
findResource
Finds the given resource by name, in any resource folder.- Parameters:
resource
- the name of the resource to look for- Throws:
IOException
-
findResourceFolder
Finds the resource folder where the given resource is located.- Parameters:
resourceFile
- the resource to find the resource folder for- Throws:
IOException
-
findSourceFolder
Finds the source folder where the given file is located.- Parameters:
sourceFile
- the source file to find the source folder for- Throws:
IOException
-
getVaadinSession
-
getApplicationConfiguration
-
getJavaPackage
Gets the java package for the given source file- Parameters:
sourceFile
- the source file- Returns:
- 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
-