Package org.ametys.core.file
Class FileHelper
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.core.file.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 Summary
Fields Modifier and Type Field Description private static SourceResolver
_srcResolver
static String
ROLE
The Avalon role name
-
Constructor Summary
Constructors Constructor Description FileHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private FileSource
_addCollection(FileSource collection, String name)
private void
_addZipEntry(FileSource collection, ZipFile zipFile, ZipArchiveEntry zipEntry, String fileName)
private void
_unzip(FileSource destSrc, ZipFile zipFile)
Map<String,Object>
addFolder(String parentURI, String name, boolean renameIfExists)
Create a folderMap<String,Object>
addOrUpdateFile(Part part, FileSource parentDir, String mode, boolean unzip)
Add or update a fileMap<String,Object>
copySource(String srcUri, String parentTargetUri)
Copy a file or folderMap<String,Object>
deleteFile(String fileUri)
Remove a folder or a fileboolean
hasChild(String parentUri, String name)
Tests if a file/folder with given name existsMap<String,Object>
moveSource(String srcUri, String parentTargetUri)
Move a file or folderMap<String,Object>
renameFile(String fileUri, String name)
Rename a file or a folderMap<String,Object>
saveFile(String fileURI, String text)
Saves text to given file in UTF-8 formatvoid
service(ServiceManager serviceManager)
-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
_srcResolver
private static SourceResolver _srcResolver
-
-
Constructor Detail
-
FileHelper
public FileHelper()
-
-
Method Detail
-
service
public void service(ServiceManager serviceManager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- 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 rootname
- the name of the new folder to createrenameIfExists
- 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 uploadparentDir
- The parent directorymode
- 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
-
_unzip
private void _unzip(FileSource destSrc, ZipFile zipFile) throws IOException
- Throws:
IOException
-
_addCollection
private FileSource _addCollection(FileSource collection, String name) throws IOException
- Throws:
IOException
-
_addZipEntry
private void _addZipEntry(FileSource collection, ZipFile zipFile, ZipArchiveEntry zipEntry, String fileName) throws IOException
- Throws:
IOException
-
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
-
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 renamename
- 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 URIname
- 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 copyparentTargetUri
- 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 moveparentTargetUri
- 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
-
-