Package com.logicaldoc.core.folder
Interface FolderDAO
-
- All Superinterfaces:
PersistentObjectDAO<Folder>
- All Known Implementing Classes:
HibernateFolderDAO
public interface FolderDAO extends PersistentObjectDAO<Folder>
Instances of this class is a DAO-service for folder objects.- Version:
- 6.0
- Author:
- Marco Meschieri - LogicalDOC
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
applyGridToTree(long rootId, FolderHistory transaction)
Propagates the grid layout of a node to the whole subtreeboolean
applyMetadataToTree(long id, FolderHistory transaction)
Propagates the template metadata to the whole subreeboolean
applyOCRToTree(long id, FolderHistory transaction)
Propagates the OCR settings to the whole subreeboolean
applyRightToTree(long rootId, FolderHistory transaction)
Propagates the security policies of a node to the whole subtreeboolean
applyTagsToTree(long id, FolderHistory transaction)
Propagates the tags to the whole subreeString
computePath(long folderId)
Dynamically computes the path for the specified folder.String
computePathExtended(long folderId)
Dynamically computes the path extended for the specified folder.long
computeTreeSize(long rootId)
Counts the number of documents inside a given folder's tree (direct and indirect children)Folder
copy(Folder source, Folder target, boolean foldersOnly, boolean inheritSecurity, FolderHistory transaction)
Copies a folder into another folderint
count(boolean computeDeleted)
Counts the number of folderslong
countDocsInTree(long rootId)
Counts the number of documents inside a given folder's tree (direct and indirect children)Folder
create(Folder parent, Folder folderVO, boolean inheritSecurity, FolderHistory transaction)
Creates a new folder in the parent FolderFolder
createAlias(long parentId, long foldRef, FolderHistory transaction)
Creates a new folder folder aliasFolder
createPath(Folder parent, String path, boolean inheritSecurity, FolderHistory transaction)
Creates the folder for the specified path.boolean
delete(long id, int delCode, FolderHistory transaction)
This method deletes the folder object and insert a new folder history entryboolean
delete(long id, FolderHistory transaction)
Shortcut for delete(id, 1, transaction)void
deleteAll(Collection<Folder> folders, int delCode, FolderHistory transaction)
For each folder, save the folder delete history entry for each folder and delete the foldervoid
deleteAll(Collection<Folder> folders, FolderHistory transaction)
Shortcut for deleteAll(folders, 1, transaction)List<Folder>
deleteTree(long folderId, int delCode, FolderHistory transaction)
Delete a folder and all its sub-folders that a user can delete.List<Folder>
deleteTree(long folderId, FolderHistory transaction)
Shortcut for deleteTree(folderId, 1, transaction)List<Folder>
deleteTree(Folder folder, int delCode, FolderHistory transaction)
Deletes a folder and all its sub-folders that a user can delete.List<Folder>
find(String name, Long tenantId)
Useful method that allows to find all folders that contains the given name into their text.List<Folder>
findAliases(Long foldRef, long tenantId)
Finds all the aliasesList<Folder>
findByGroupId(long groupId)
Finds all folders accessible by the passed groupList<Folder>
findByName(Folder parent, String name, Long tenantId, boolean caseSensitive)
Finds all folders by folder text, contained in the parent folder.List<Folder>
findByName(String name, Long tenantId)
Finds all folders by folder nameList<Folder>
findByNameAndParentId(String name, long parentId)
Finds that folder that lies under a specific parent (given by the id) an with a given name(like operator is used)List<Folder>
findByParentId(long parentId)
Finds all children(direct and indirect) by parentIdFolder
findByPathExtended(String pathExtended, long tenantId)
Retrieval of a folder by the extended pathList<Folder>
findByUserId(long userId)
Finds authorized folders for a userList<Folder>
findByUserId(long userId, long parentId)
Finds direct children of a folder.List<Folder>
findByUserIdAndTag(long userId, String tag, Integer max)
Finds authorized folders for a user having a specified tag.List<Folder>
findChildren(long parentId, long userId)
Finds direct children of a folder accessible by the given userList<Folder>
findChildren(long parentId, Integer max)
Finds direct children of a folderFolder
findDefaultWorkspace(long tenantId)
Retrieves the Default workspace of the given tenantList<Folder>
findDeleted(long userId, Integer maxHits)
Finds all deleted folders of a specific user.Folder
findFolder(long folderId)
Gets a folder by a given ID if it is an alias, the referenced folder is returned.Collection<Long>
findFolderIdByUserId(long userId, Long parentId, boolean tree)
This method selects only the folder ID from the folders for which a user is authorized.Collection<Long>
findFolderIdByUserIdAndPermission(long userId, Permission permission, Long parentId, boolean tree)
Finds all folders ids with a specific permission enabled on the specifies userCollection<Long>
findFolderIdByUserIdInPath(long userId, Long parentId)
This method selects only the folder ID from the folders for which a user is authorized.Collection<Long>
findFolderIdInPath(long rootId, boolean includeDeleted)
Retrieve all the ids of the folder in a given tree using the path attributeCollection<Long>
findFolderIdInTree(long rootId, boolean includeDeleted)
Retrieve all the ids of the folders in a given treeList<Long>
findIdByUserId(long userId, long parentId)
This method selects only the folder ID from the folders for which a user is authorized.List<Long>
findIdsByParentId(long parentId)
Finds all children sds(direct and indirect) by parentIdList<Folder>
findParents(long id)
Returns a List of folders being a parent of the given folder.Folder
findRoot(long tenantId)
Retrieves the root folder of the given tenantList<String>
findTags(long folderId)
Retrieves the alphabetically ordered list of all the folder's tagsFolder
findWorkspace(long folderId)
Returns the workspace that contains the given folderList<Folder>
findWorkspaces(long tanantId)
Retrieves all the workspaces in the system, that are the first-level folders of typeFolder.TYPE_WORKSPACE
Set<Permission>
getEnabledPermissions(long folderId, long userId)
Finds all permissions of a user enabled on the specified folderboolean
hasWriteAccess(Folder folder, long userId)
Checks that the user has access to the folder and all its sub-itemsvoid
initialize(Folder folder)
Initializes lazy loaded collectionsboolean
isDownloadEnabled(long folderId, long userId)
boolean
isInPath(long folderId, long targetId)
Checks if a folder with the given folderId is parent of the folder with the given targetIdboolean
isMoveEnabled(long folderId, long userId)
boolean
isPermissionEnabled(Permission permission, long folderId, long userId)
This method checks if the given permission is enabled for a folder and an user.boolean
isPrintEnabled(long folderId, long userId)
boolean
isReadEnabled(long folderId, long userId)
boolean
isWriteEnabled(long folderId, long userId)
This method is looking up for writing rights for a folder and an user.void
move(Folder source, Folder target, FolderHistory transaction)
Moves a folder into another foldervoid
restore(long folderId, long parentId, FolderHistory transaction)
Restores a previously deleted foldervoid
saveFolderHistory(Folder folder, FolderHistory transaction)
Utility method that logs into the DB the transaction that involved the passed folder.boolean
store(Folder folder, FolderHistory transaction)
Same as store(Folder, boolean, FolderHistory)boolean
updateSecurityRef(long folderId, long rightsFolderId, FolderHistory transaction)
Changes the securityRef of the given folder, all the other folders that inherits from this one will be changed accordingly.-
Methods inherited from interface com.logicaldoc.core.PersistentObjectDAO
bulkUpdate, delete, delete, deleteAll, deleteAll, findAll, findAll, findAllIds, findAllIds, findById, findById, findByObjectQuery, findByQuery, findByWhere, findByWhere, findIdsByWhere, findIdsByWhere, getDbms, isOracle, jdbcUpdate, jdbcUpdate, query, queryForInt, queryForList, queryForList, queryForLong, queryForObject, queryForRowSet, queryForString, store
-
-
-
-
Method Detail
-
findFolder
Folder findFolder(long folderId)
Gets a folder by a given ID if it is an alias, the referenced folder is returned.- Parameters:
folderId
- The ID- Returns:
- A real folder that is referenced by the given ID
-
findByName
List<Folder> findByName(String name, Long tenantId)
Finds all folders by folder name- Parameters:
name
- name of the foldertenantId
- Specification of the owning tenant (optional).- Returns:
- List of folders with given folder name.
-
findByName
List<Folder> findByName(Folder parent, String name, Long tenantId, boolean caseSensitive)
Finds all folders by folder text, contained in the parent folder.- Parameters:
parent
- The parent folder(optional)name
- The folder name to search fortenantId
- Specification of the owning tenant (optional). If not specified the tenant of parent is used insteadcaseSensitive
- true if the search must be case sensitive- Returns:
- List of folders with given name
-
findRoot
Folder findRoot(long tenantId)
Retrieves the root folder of the given tenant- Parameters:
tenantId
- identifier of the tenant- Returns:
- the root folder
-
findDefaultWorkspace
Folder findDefaultWorkspace(long tenantId)
Retrieves the Default workspace of the given tenant- Parameters:
tenantId
- identifier of the tenant- Returns:
- The default workspace
-
findByUserId
List<Folder> findByUserId(long userId)
Finds authorized folders for a user- Parameters:
userId
- ID of the user- Returns:
- List of found folders
-
findByUserIdAndTag
List<Folder> findByUserIdAndTag(long userId, String tag, Integer max)
Finds authorized folders for a user having a specified tag.- Parameters:
userId
- ID of the usertag
- Tag of the foldermax
- Optional, defines the maximum records number- Returns:
- Collection of found folders
-
findFolderIdByUserIdAndPermission
Collection<Long> findFolderIdByUserIdAndPermission(long userId, Permission permission, Long parentId, boolean tree)
Finds all folders ids with a specific permission enabled on the specifies user- Parameters:
userId
- The user identifierpermission
- The permission to checkparentId
- The id of the parent folder to inspect (optional)tree
- If true, the parentId will be interpreted as the root of a tree- Returns:
- List of selected folder IDs.
-
findFolderIdByUserId
Collection<Long> findFolderIdByUserId(long userId, Long parentId, boolean tree)
This method selects only the folder ID from the folders for which a user is authorized.- Parameters:
userId
- ID of the user.parentId
- The id of the parent folder to inspect (optional)tree
- If true, the parentId will be interpreted as the root of a tree- Returns:
- List of selected folder IDs.
-
findFolderIdInTree
Collection<Long> findFolderIdInTree(long rootId, boolean includeDeleted)
Retrieve all the ids of the folders in a given tree- Parameters:
rootId
- Root of the treeincludeDeleted
- True if the deleted records need to be loaded- Returns:
- List of selected folder IDs.
-
findFolderIdInPath
Collection<Long> findFolderIdInPath(long rootId, boolean includeDeleted)
Retrieve all the ids of the folder in a given tree using the path attribute- Parameters:
rootId
- Root of the folderincludeDeleted
- True if the deleted records need to be loaded- Returns:
- List of selected folder IDs.
-
findFolderIdByUserIdInPath
Collection<Long> findFolderIdByUserIdInPath(long userId, Long parentId)
This method selects only the folder ID from the folders for which a user is authorized.- Parameters:
userId
- ID of the user.parentId
- The id of the parent folder to inspect (optional)- Returns:
- List of selected folder IDs.
-
findByUserId
List<Folder> findByUserId(long userId, long parentId)
Finds direct children of a folder.- Parameters:
parentId
- ID of the folder which children are wanteduserId
- identifier of the user- Returns:
- List of found folders sorted by text
-
findByParentId
List<Folder> findByParentId(long parentId)
Finds all children(direct and indirect) by parentId- Parameters:
parentId
- identifier of the parent folder- Returns:
- List of found folders
-
findIdsByParentId
List<Long> findIdsByParentId(long parentId)
Finds all children sds(direct and indirect) by parentId- Parameters:
parentId
- identifier of the parent folder- Returns:
- list of folder IDs
-
findChildren
List<Folder> findChildren(long parentId, Integer max)
Finds direct children of a folder- Parameters:
parentId
- Folder ID of the folder which children are wantedmax
- Optional, maximum number of children- Returns:
- List of found folders
-
findChildren
List<Folder> findChildren(long parentId, long userId)
Finds direct children of a folder accessible by the given user- Parameters:
parentId
- Folder ID of the folder which children are wanteduserId
- Identifier of the user that must have read access- Returns:
- List of found folders
-
isWriteEnabled
boolean isWriteEnabled(long folderId, long userId)
This method is looking up for writing rights for a folder and an user.- Parameters:
folderId
- ID of the folderuserId
- ID of the user- Returns:
- if the write permission is granted
-
isReadEnabled
boolean isReadEnabled(long folderId, long userId)
-
isPrintEnabled
boolean isPrintEnabled(long folderId, long userId)
-
isDownloadEnabled
boolean isDownloadEnabled(long folderId, long userId)
-
isMoveEnabled
boolean isMoveEnabled(long folderId, long userId)
-
isPermissionEnabled
boolean isPermissionEnabled(Permission permission, long folderId, long userId)
This method checks if the given permission is enabled for a folder and an user.- Parameters:
permission
- the permission to checkfolderId
- ID of the folderuserId
- ID of the user- Returns:
- if the permission is granted to the user
-
getEnabledPermissions
Set<Permission> getEnabledPermissions(long folderId, long userId)
Finds all permissions of a user enabled on the specified folder- Parameters:
folderId
- ID of the folderuserId
- ID of the user- Returns:
- Collection of enabled permissions
-
findIdByUserId
List<Long> findIdByUserId(long userId, long parentId)
This method selects only the folder ID from the folders for which a user is authorized. Only folders direct child of the specified parent are returned.- Parameters:
userId
- ID of the userparentId
- Parent folder- Returns:
- List of selected folder ID's.
-
hasWriteAccess
boolean hasWriteAccess(Folder folder, long userId)
Checks that the user has access to the folder and all its sub-items- Parameters:
folder
- the folderuserId
- identifier of the document- Returns:
- if the user has write permission
-
findByGroupId
List<Folder> findByGroupId(long groupId)
Finds all folders accessible by the passed group- Parameters:
groupId
- The group id- Returns:
- The List of folders
-
findParents
List<Folder> findParents(long id)
Returns a List of folders being a parent of the given folder. The list is ordered starting from the root of folders. The list doesn't include the given folder.- Parameters:
id
- ID of the folder- Returns:
- the hierarchy of parent folders
-
findWorkspace
Folder findWorkspace(long folderId)
Returns the workspace that contains the given folder- Parameters:
folderId
- ID of the folder- Returns:
- the workspace containing the fiven folder
-
restore
void restore(long folderId, long parentId, FolderHistory transaction) throws PersistenceException
Restores a previously deleted folder- Parameters:
folderId
- The folder identifierparentId
- The parent folder to restore intransaction
- Current session informations- Throws:
PersistenceException
- in case of database error
-
findByNameAndParentId
List<Folder> findByNameAndParentId(String name, long parentId)
Finds that folder that lies under a specific parent (given by the id) an with a given name(like operator is used)- Parameters:
name
- name of the dolderparentId
- identifier of the parent folder- Returns:
- list of folders
-
store
boolean store(Folder folder, FolderHistory transaction) throws PersistenceException
Same as store(Folder, boolean, FolderHistory)- Parameters:
folder
- the folder to storetransaction
- current session informations- Returns:
- true if the folder has been correctly stored
- Throws:
PersistenceException
- in case of database error
-
deleteAll
void deleteAll(Collection<Folder> folders, FolderHistory transaction) throws PersistenceException
Shortcut for deleteAll(folders, 1, transaction)- Parameters:
folders
- the folderstransaction
- current session informations- Throws:
PersistenceException
- in case of database error
-
deleteAll
void deleteAll(Collection<Folder> folders, int delCode, FolderHistory transaction) throws PersistenceException
For each folder, save the folder delete history entry for each folder and delete the folder- Parameters:
folders
- List of folder to be deletedelCode
- The deletion codetransaction
- entry to log the event on each folder- Throws:
PersistenceException
- in case of database error
-
delete
boolean delete(long id, FolderHistory transaction) throws PersistenceException
Shortcut for delete(id, 1, transaction)- Parameters:
id
- the folder identifiertransaction
- the session informations- Returns:
- if the folde has been succesfully deleted
- Throws:
PersistenceException
- in case of database error
-
delete
boolean delete(long id, int delCode, FolderHistory transaction) throws PersistenceException
This method deletes the folder object and insert a new folder history entry- Parameters:
id
- The id of the folder to deletedelCode
- The deletion codetransaction
- entry to log the event- Returns:
- True if successfully deleted from the database
- Throws:
PersistenceException
- in case of database error
-
create
Folder create(Folder parent, Folder folderVO, boolean inheritSecurity, FolderHistory transaction) throws PersistenceException
Creates a new folder in the parent Folder- Parameters:
parent
- The parent folderfolderVO
- The folder's metadatainheritSecurity
- If true the new folder will 'point' to the parent for the security policies.transaction
- optional transaction entry to log the event- Returns:
- The newly created folder
- Throws:
PersistenceException
- in case of database error
-
createAlias
Folder createAlias(long parentId, long foldRef, FolderHistory transaction) throws PersistenceException
Creates a new folder folder alias- Parameters:
parentId
- The parent folderfoldRef
- The referenced foldertransaction
- optional transaction entry to log the event- Returns:
- The newly created alias
- Throws:
PersistenceException
- in case of database error
-
findAliases
List<Folder> findAliases(Long foldRef, long tenantId)
Finds all the aliases- Parameters:
foldRef
- The referenced foldertenantId
- The tenant- Returns:
- Collection of aliases
-
createPath
Folder createPath(Folder parent, String path, boolean inheritSecurity, FolderHistory transaction) throws PersistenceException
Creates the folder for the specified path. All unexisting nodes specified in the path will be created. The path must be in any case inside a workspace, if not, the Default one will be used.- Parameters:
parent
- The parent folderpath
- The folder path(for example /dog/cat/mouse)inheritSecurity
- If true the new folders will 'point' to the parent for the security policies.transaction
- optional transaction entry to log the event- Returns:
- The created folder
- Throws:
PersistenceException
- in case of database error
-
computePath
String computePath(long folderId)
Dynamically computes the path for the specified folder. The path is a sequence of IDS in the form: /4/55897/99870- Parameters:
folderId
- identifier of the folder- Returns:
- the folder's path
-
computePathExtended
String computePathExtended(long folderId)
Dynamically computes the path extended for the specified folder. The path extended is a human readable path in the form: /folder1/folder2/folder3- Parameters:
folderId
- the folder's identifier- Returns:
- The path extended
-
findByPathExtended
Folder findByPathExtended(String pathExtended, long tenantId)
Retrieval of a folder by the extended path- Parameters:
pathExtended
- the path extendedtenantId
- identifier of the tenant- Returns:
- The folder that matched the given path
-
move
void move(Folder source, Folder target, FolderHistory transaction) throws PersistenceException
Moves a folder into another folder- Parameters:
source
- The folder to movetarget
- The target foldertransaction
- entry to log the event (set the user)- Throws:
PersistenceException
- in case of database error
-
copy
Folder copy(Folder source, Folder target, boolean foldersOnly, boolean inheritSecurity, FolderHistory transaction) throws PersistenceException
Copies a folder into another folder- Parameters:
source
- The folder to copytarget
- The target folderfoldersOnly
- True if only the folders tree has to be copied; if false, the documents will also be copiedinheritSecurity
- If true the new folder will 'point' to the parent for the security policies.transaction
- entry to log the event (set the user)- Returns:
- The new folder created
- Throws:
PersistenceException
- in case of database error
-
deleteTree
List<Folder> deleteTree(Folder folder, int delCode, FolderHistory transaction) throws PersistenceException
Deletes a folder and all its sub-folders that a user can delete. After recovering of all sub-folders inside the folder, will be canceled all folders for which the user has the delete permission or there isn't an immutable document inside it.
Important: Remember to delete orphaned documents.- Parameters:
folder
- Folder to deletedelCode
- The deletion codetransaction
- entry to log the event (set the user)- Returns:
- List of folders that the user cannot delete(permissions, o immutable documents presents)
- Throws:
PersistenceException
- in case of database error
-
deleteTree
List<Folder> deleteTree(long folderId, int delCode, FolderHistory transaction) throws Exception
Delete a folder and all its sub-folders that a user can delete. After recovering of all sub-folders inside the folder, will be canceled all folders for which the user has the delete permission or there isn't an immutable document inside it.
Important: All the contained documents will be deleted- Parameters:
folderId
- Folder to deletedelCode
- The deletion codetransaction
- entry to log the event (set the user)- Returns:
- List of folders that the user cannot delete(permissions, o immutable documents presents)
- Throws:
Exception
- in case of any error
-
deleteTree
List<Folder> deleteTree(long folderId, FolderHistory transaction) throws Exception
Shortcut for deleteTree(folderId, 1, transaction)- Parameters:
folderId
- Folder to deletetransaction
- entry to log the event (set the user)- Returns:
- List of folders that the user cannot delete(permissions, o immutable documents presents)
- Throws:
Exception
- in case of any error
-
find
List<Folder> find(String name, Long tenantId)
Useful method that allows to find all folders that contains the given name into their text.- Parameters:
name
- The name to be foundtenantId
- The tenant to search in- Returns:
- List of folders that contains the given name into their text.
-
findDeleted
List<Folder> findDeleted(long userId, Integer maxHits)
Finds all deleted folders of a specific user.- Parameters:
userId
- The user that performed the deletionmaxHits
- Optional defines the max number of returned hits- Returns:
- The folders list
-
isInPath
boolean isInPath(long folderId, long targetId)
Checks if a folder with the given folderId is parent of the folder with the given targetId- Parameters:
folderId
- The folder to be checkedtargetId
- The target folder- Returns:
- True if the folder with the given folderId is parent of the folder with the given targetId
-
applyRightToTree
boolean applyRightToTree(long rootId, FolderHistory transaction)
Propagates the security policies of a node to the whole subtree- Parameters:
rootId
- identifier of the root foldertransaction
- session informations- Returns:
- if the rights have been correctly applied
-
applyGridToTree
boolean applyGridToTree(long rootId, FolderHistory transaction)
Propagates the grid layout of a node to the whole subtree- Parameters:
rootId
- identifier of the root foldertransaction
- session informations- Returns:
- if the grid layout has been correctly replicated
-
updateSecurityRef
boolean updateSecurityRef(long folderId, long rightsFolderId, FolderHistory transaction)
Changes the securityRef of the given folder, all the other folders that inherits from this one will be changed accordingly.- Parameters:
folderId
- identifier of the folderrightsFolderId
- id of the folder to inherit fromtransaction
- session informations- Returns:
- is the update has been successful
-
applyMetadataToTree
boolean applyMetadataToTree(long id, FolderHistory transaction) throws PersistenceException
Propagates the template metadata to the whole subree- Parameters:
id
- identifier of the foldertransaction
- session informations- Returns:
- is the update has been successful
- Throws:
PersistenceException
- in case of database error
-
applyTagsToTree
boolean applyTagsToTree(long id, FolderHistory transaction) throws PersistenceException
Propagates the tags to the whole subree- Parameters:
id
- identifier of the foldertransaction
- session informations- Returns:
- is the update has been successful
- Throws:
PersistenceException
- in case of database error
-
applyOCRToTree
boolean applyOCRToTree(long id, FolderHistory transaction) throws PersistenceException
Propagates the OCR settings to the whole subree- Parameters:
id
- identifier of the foldertransaction
- session informations- Returns:
- is the update has been successful
- Throws:
PersistenceException
- in case of database error
-
count
int count(boolean computeDeleted)
Counts the number of folders- Parameters:
computeDeleted
- if the deleted folders have to be taken int account- Returns:
- the number of folders
-
findWorkspaces
List<Folder> findWorkspaces(long tanantId)
Retrieves all the workspaces in the system, that are the first-level folders of typeFolder.TYPE_WORKSPACE
- Parameters:
tanantId
- identifier of the tenant- Returns:
- list of folders
-
initialize
void initialize(Folder folder)
Initializes lazy loaded collections- Specified by:
initialize
in interfacePersistentObjectDAO<Folder>
- Parameters:
folder
- The folder to be initialized
-
saveFolderHistory
void saveFolderHistory(Folder folder, FolderHistory transaction)
Utility method that logs into the DB the transaction that involved the passed folder. The transaction must be provided with userId and userName.- Parameters:
folder
- the foldertransaction
- the session informations
-
countDocsInTree
long countDocsInTree(long rootId)
Counts the number of documents inside a given folder's tree (direct and indirect children)- Parameters:
rootId
- identifier of the root folder- Returns:
- the number of documents contained in the tree
-
computeTreeSize
long computeTreeSize(long rootId)
Counts the number of documents inside a given folder's tree (direct and indirect children)- Parameters:
rootId
- identifier of the root folder- Returns:
- sum of the sizes of the documents contained in the tree expressed in bytes
-
-