Class FileHelper

All Implemented Interfaces:
Component, LogEnabled, Serviceable

public final class FileHelper extends AbstractLogEnabled implements Component, Serviceable
Helper for managing files and folders of a application directory such as WEB-INF/params
  • Field Details

  • Constructor Details

  • Method Details

    • service

      public void service(ServiceManager serviceManager) throws ServiceException
      Specified by:
      service in interface Serviceable
      Throws:
      ServiceException
    • saveFile

      public Map<String,Object> saveFile(String fileURI, String text) throws IOException
      Saves text to given file in UTF-8 format
      Parameters:
      fileURI - the file URI. Must point to an existing file.
      text - the UTF-8 file content
      Returns:
      A result map.
      Throws:
      IOException - If an error occurred while saving
    • addFolder

      public Map<String,Object> addFolder(String parentURI, String name, boolean renameIfExists) throws IOException
      Create a folder
      Parameters:
      parentURI - the parent URI, relative to the root
      name - the name of the new folder to create
      renameIfExists - true if the folder have to be renamed if the folder with same name already exits.
      Returns:
      The result Map with the name and uri of created folder, or a boolean "success" to false if an error occurs.
      Throws:
      IOException - If an error occurred adding the folder
    • addOrUpdateFile

      public Map<String,Object> addOrUpdateFile(Part part, FileSource parentDir, String mode, boolean unzip) throws IOException
      Add or update a file
      Parameters:
      part - The file multipart to upload
      parentDir - The parent directory
      mode - The insertion mode: 'add-rename' or 'update' or null.
      unzip - true to unzip .zip file
      Returns:
      the result map
      Throws:
      IOException - If an error occurred manipulating the file
    • deleteFile

      public Map<String,Object> deleteFile(String fileUri) throws IOException
      Remove a folder or a file
      Parameters:
      fileUri - the file/folder URI
      Returns:
      the result map.
      Throws:
      IOException - If an error occurs while removing the folder/file
    • delete

      public void delete(Path path, DirectoryStream.Filter<Path> fileFilter, boolean recursiveDelete, boolean deleteEmptyDirs) throws IOException
      Delete all files corresponding to the file filter into the file tree.
      Parameters:
      path - the path to delete (can be a file or a directory)
      fileFilter - the file filter to apply
      recursiveDelete - if true, the file tree will be explored to delete files
      deleteEmptyDirs - if true, empty dirs will be deleted
      Throws:
      IOException - if an error occured while exploring or deleting files
    • renameFile

      public Map<String,Object> renameFile(String fileUri, String name) throws IOException
      Rename a file or a folder
      Parameters:
      fileUri - the relative URI of the file or folder to rename
      name - the new name of the file/folder
      Returns:
      The result Map with the name, path of the renamed file/folder, or a boolean "already-exist" is a file/folder already exists with this name.
      Throws:
      IOException - if an error occurs while renaming the file/folder
    • hasChild

      public boolean hasChild(String parentUri, String name) throws IOException
      Tests if a file/folder with given name exists
      Parameters:
      parentUri - the parent folder URI
      name - the name of the child
      Returns:
      true if the file exists
      Throws:
      IOException - if an error occurred
    • copySource

      public Map<String,Object> copySource(String srcUri, String parentTargetUri) throws IOException
      Copy a file or folder
      Parameters:
      srcUri - The URI of file/folder to copy
      parentTargetUri - The URI of parent target file
      Returns:
      a result map with the name and uri of copied file in case of success.
      Throws:
      IOException - If an error occured manipulating the source
    • moveSource

      public Map<String,Object> moveSource(String srcUri, String parentTargetUri) throws IOException
      Move a file or folder
      Parameters:
      srcUri - The URI of file/folder to move
      parentTargetUri - The URI of parent target file
      Returns:
      a result map with the name and uri of moved file in case of success.
      Throws:
      IOException - If an error occurred manipulating the source
    • filterSources

      public List<String> filterSources(TraversableSource source, String value)
      Get the URIs of sources which match filter value. Source are filtered both on their filename and in their content for text file. The search will be performed on the current source and all its descendants
      Parameters:
      source - The source to start search
      value - the value to match
      Returns:
      the URIs of matching source