Package com.logicaldoc.core.automation

# Class FolderTool

java.lang.Object
com.logicaldoc.core.automation.FolderTool

public class FolderTool extends Object
Utility methods to handle folders from within the Automation

Since:
  7.3
Author:
  Marco Meschieri - LogicalDOC

## Constructor Summary

Constructors
Constructor
Description
`FolderTool()`

## Method Summary

Modifier and Type
Method
Description
`void`
`applyTemplate(long rootId, String templateName, boolean inheritSecurity, String username)`
Applies a folder template
`Folder`
`copy(Folder source, String targetPath, boolean foldersOnly, String securityOption, String username)`
Copies a folder into another folder
`Folder`
`createPath(Folder folder, String targetPath, String username)`
Creates a path, all existing nodes in the specified path will be reused
`void`
`delete(long folderId, String username)`
Delete a folder
`String`
`displayUrl(long tenantId, long folderId)`
Prints the URL to display the folder inside the User Interface
`String`
`displayUrl(Folder folder)`
Prints the URL to display the folder inside the User Interface
`String`
`displayUrl(FolderHistory history)`
Prints the URL to display the folder inside the User Interface
`Folder`
`findById(long id)`
Finds the folder by it's identifier
`Folder`
`findByPath(String path)`
Finds the folder by it's path
`Folder`
`findByPath(String path, Long tenantId)`
Finds the folder by it's path
`String`
`getPath(Long folderId)`
Calculates the full path of a folder
`void`
`initialize(Folder folder)`
Initializes lazy loaded collections
`void`
`merge(Folder source, Folder target, String username)`
Merges a folder into another folder
`void`
`move(Folder folder, String targetPath, String username)`
Moves a folder into a target folder
`void`
`store(Folder folder)`
Saves / updates a folder into the database
`void`
`store(Folder folder, String username)`
Saves / updates a folder into the database

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### FolderTool

public FolderTool()

## Method Details

### displayUrl

public String displayUrl(long tenantId, long folderId)
Prints the URL to display the folder inside the User Interface

Parameters:
  `tenantId` - identifier of the tenant
  `folderId` - identifier of the folder
Returns:
  the display URL

### displayUrl

public String displayUrl(Folder folder)
Prints the URL to display the folder inside the User Interface

Parameters:
  `folder` - the folder to display
Returns:
  the display URL

### displayUrl

public String displayUrl(FolderHistory history)
Prints the URL to display the folder inside the User Interface

Parameters:
  `history` - event from which to get the folder's to display
Returns:
  the display URL

### getPath

public String getPath(Long folderId) throws PersistenceException
Calculates the full path of a folder

Parameters:
  `folderId` - identifier of the folder
Returns:
  the path
Throws:
  `PersistenceException` - error at database level

### findByPath

public Folder findByPath(String path)
Finds the folder by it's path

Parameters:
  `path` - the path to process
Returns:
  the found folder

### findByPath

public Folder findByPath(String path, Long tenantId)
Finds the folder by it's path

Parameters:
  `path` - the path to process
  `tenantId` - identifier of the tenant
Returns:
  the found folder

### findById

public Folder findById(long id)
Finds the folder by it's identifier

Parameters:
  `id` - the unique identifier
Returns:
  the found folder

### store

public void store(Folder folder)
Saves / updates a folder into the database

Parameters:
  `folder` - the folder to save

### store

public void store(Folder folder, String username)
Saves / updates a folder into the database

Parameters:
  `folder` - the folder to save
  `username` - the user in whose name the method is run

### initialize

public void initialize(Folder folder)
Initializes lazy loaded collections

Parameters:
  `folder` - the folder to initialize

### delete

public void delete(long folderId, String username) throws PersistenceException
Delete a folder

Parameters:
  `folderId` - identifier of the folder
  `username` - the user in whose name the method is run
Throws:
  `PersistenceException` - Error in the persistence layers

### move

public void move(Folder folder, String targetPath, String username) throws PersistenceException
Moves a folder into a target folder

Parameters:
  `folder` - the folder to move
  `targetPath` - the full path of the target folder(if it does not exist it will be created)
  `username` - the user in whose name the method is run
Throws:
  `PersistenceException` - Error in the persistence layer

### copy

public Folder copy(Folder source, String targetPath, boolean foldersOnly, String securityOption, String username) throws PersistenceException
Copies a folder into another folder

Parameters:
  `source` - the folder to copy
  `targetPath` - the full path of the target folder(if it does not exist it will be created)
  `foldersOnly` - true if only the folders tree has to be copied; if false, the documents will also be copied
  `securityOption` - How to assign the security policies to the newly created folders:
  - null or none: empty security policies
  - inherit: the new folder will point to the parent for the security policies
  - replicate: the new folder will have a copy of the security policies of the source folder
  `username` - the user in whose name the method is run
Returns:
  The new folder created
Throws:
  `PersistenceException` - Error in the persistence layer

### merge

public void merge(Folder source, Folder target, String username) throws PersistenceException
Merges a folder into another folder

Parameters:
  `source` - the folder to merge into the target
  `target` - the final container
  `username` - the user in whose name the method is run
Throws:
  `PersistenceException` - Error in the persistence layer

### createPath

public Folder createPath(Folder folder, String targetPath, String username)
Creates a path, all existing nodes in the specified path will be reused

Parameters:
  `folder` - folder used to take the root folder in case the `targetPath` represents a relative path
  `targetPath` - absolute or relative(in relation to the document's parent folder) path to be created
  `username` - the user in whose name the method is run
Returns:
  the folder leaf of the path

### applyTemplate

public void applyTemplate(long rootId, String templateName, boolean inheritSecurity, String username) throws PersistenceException
Applies a folder template

Parameters:
  `rootId` - Id of the root where the template must be applied to
  `templateName` - Identifier of the folder template
  `inheritSecurity` - If the created folders must inherit the security from the root
  `username` - the user in whose name the method is run
Throws:
  `PersistenceException` - Error in the data layer