Class WorkspaceExplorerResourceDAO
java.lang.Object
org.ametys.runtime.plugin.component.AbstractLogEnabled
org.ametys.plugins.explorer.resources.actions.ExplorerResourcesDAO
org.ametys.plugins.workspaces.documents.WorkspaceExplorerResourceDAO
- All Implemented Interfaces:
LogEnabled
,PluginAware
,Component
,Contextualizable
,Serviceable
DAO for resources of a project
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Enumeration for resource type for officestatic enum
Enumeration for resource typeNested classes/interfaces inherited from class org.ametys.plugins.explorer.resources.actions.ExplorerResourcesDAO
ExplorerResourcesDAO.VersionInformation
-
Field Summary
Modifier and TypeFieldDescriptionprotected AddOrUpdateResourceHelper
resource operation helperstatic final String
Avalon RoleFields inherited from class org.ametys.plugins.explorer.resources.actions.ExplorerResourcesDAO
_cocoonContext, _context, _currentUserProvider, _metadataPopulatorEP, _observationManager, _resolver, _rightManager, _threadDAO, _tikaProvider, _userHelper, RIGHTS_COLLECTION_ADD, RIGHTS_COLLECTION_CMIS_ADD, RIGHTS_COLLECTION_DELETE, RIGHTS_COLLECTION_EDIT, RIGHTS_RESOURCE_ADD, RIGHTS_RESOURCE_COMMENT, RIGHTS_RESOURCE_DELETE, RIGHTS_RESOURCE_EDIT_DC, RIGHTS_RESOURCE_MODERATE_COMMENT, RIGHTS_RESOURCE_RENAME, RIGHTS_RESOURCE_UNLOCK_ALL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
Indicates if the current user can view the fileprotected boolean
_canView
(ResourceCollection folder) Indicates if the current user can view the folder_comment2json
(JCRPost comment, boolean isEdition) Get JSOn representation of a comment_extractDocumentData
(AmetysObject document, boolean excludeFolders, boolean excludeFiles) Internal method to extract the valuable data of a document_extractFileData
(Resource file) Internal method to extract the valuable data of a file_extractFileLockData
(Resource file) Internal method to extract the data relative to the lock state of a fileInternal method to extract the data concerning the right of the current user for file_extractFolderData
(ResourceCollection folder) Internal method to extract the valuable data of a folderInternal method to extract the data concerning the right of the current user for a folderprotected String
_getComment
(JCRPost post) Get the content of a comment as a Stringprotected String
_getCommentForEditing
(JCRPost post) Get the content of a comment to edit as a Stringprotected boolean
_hasChildren
(ResourceCollection folder, boolean ignoreFiles) Internal method to detect if a document has childprotected void
_setComment
(JCRPost comment, String content) Update the content of a commentaddCMISCollection
(String parentId, String originalName, String url, String login, String password, String repoId, String mountPoint, boolean renameIfExists) Creates a new CMIS folder (seeCMISRootResourcesCollection
)addFile
(InputStream inputStream, String fileName, String parentId, boolean unarchive, boolean allowRename, boolean allowUpdate) Add a fileAdd a fileAdd a folderAdd a folderCopy file resourcescreateFile
(String folderId, String type) Create a filedeleteFolder
(String id) Delete a foldereditCMISCollection
(String id, String name, String url, String login, String password, String repoId, String mountPoint) Edits a CMIS folder (seeCMISRootResourcesCollection
)Edit a fileeditFolder
(String id, String inputName, String description) Edit a foldergenerateWebdavUri
(String documentId) Generates an uri to open a document through webdavgetChildDocumentsData
(String parentId, boolean excludeFolders, boolean excludeFiles) Retrieves the children of a document and extracts its data.getChildDocumentsData
(ResourceCollection document, boolean excludeFolders, boolean excludeFiles) Retrieves the children of a document and extracts its data.Get the CMIS properties of collectiongetDocumentData
(String id, boolean excludeFilesInFolderHierarchy) Deprecated.getDocumentsCount
(Project project) Count the total of documents in the projectgetDocumentsData
(List<String> ids, boolean excludeFilesInFolderHierarchy) Retrieves the set of standard data for a list of documentsGet filegetFileParentInfo
(String fileId) Get the children folders and files of the folder owning the given fileGet the child filesGet foldergetFolders
(String parentId) Get the child foldersgetFoldersAndFiles
(String folderId) Get the child folders and filesGet the root folderboolean
Determines if a object is aCMISRootResourcesCollection
lockResources
(List<String> ids) Lock resourcesmoveDocuments
(List<String> ids, String targetId) Move documents (files or folders)moveObjects
(List<String> objectIds, String parentFolderId) Move objects to parent folderrenameFile
(String id, String name) Rename a folderrenameFolder
(String id, String name) Rename a folderboolean
resourceExists
(String parentId, String name) Determines if a resource with given name already existssearchFiles
(String query, String lang) Search for files in the document modulesearchFilesByType
(String type) Search for files by their typevoid
service
(ServiceManager manager) void
setPluginInfo
(String pluginName, String featureName, String id) Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.Set tags to resourceunlockResources
(List<String> ids) Unlock resourcesMethods inherited from class org.ametys.plugins.explorer.resources.actions.ExplorerResourcesDAO
_canAddComment, _canDeleteComment, _canEditComment, _version2json, addComment, addResourceCollection, addResourceCollection, checkLock, checkpoint, checkUserRight, contextualize, copyResource, copyResource, createResource, deleteComment, deleteObject, deleteObject, editCMISCollection, editComment, extractResourceMetadata, filterResourcesByRegExp, getComment, getComments, getDCMetadata, getDefaultInfoAsRootNode, getDefaultInfoAsRootNode, getExplorerNodeProperties, getNodesInfo, getResourceCollectionType, getResourceProperties, getResourcesRootNodes, getRootNodeLabel, getRootNodesInfo, getUserRight, getUserRights, hasRight, moveObject, moveObject, renameObject, renameObject, renameResource, renameResource, resourceExists, resourceHistory, resourcesExists, restoreResource, setDCMetadata, setDCMetadata, updateResource
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
Field Details
-
ROLE
Avalon Role -
_addOrUpdateResourceHelper
resource operation helper
-
-
Constructor Details
-
WorkspaceExplorerResourceDAO
public WorkspaceExplorerResourceDAO()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classExplorerResourcesDAO
- Throws:
ServiceException
-
setPluginInfo
Description copied from interface:PluginAware
Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.- Specified by:
setPluginInfo
in interfacePluginAware
- Parameters:
pluginName
- Unique identifier for the plugin hosting the extensionfeatureName
- Unique feature identifier (unique for a given pluginName)id
- Unique identifier of this component
-
addFolder
public Map<String,Object> addFolder(String parentId, String inputName, String description) throws IllegalAccessException Add a folder- Parameters:
parentId
- Identifier of the parent collection. Can be null to add folder to root folder.inputName
- The desired namedescription
- The folder description- Returns:
- The created folder or an error if a folder with same name already exists.
- Throws:
IllegalAccessException
- If the user has no sufficient rights
-
addFolder
public Map<String,Object> addFolder(String parentId, String inputName, String description, Boolean renameIfExists) Add a folder- Parameters:
parentId
- Identifier of the parent collection. Can be null to add folder to root folder.inputName
- The desired namedescription
- The folder descriptionrenameIfExists
- True to rename if existing- Returns:
- The result map with id, parentId and name keys
-
moveObjects
public Map<String,Object> moveObjects(List<String> objectIds, String parentFolderId) throws javax.jcr.RepositoryException Move objects to parent folder- Parameters:
objectIds
- the object ids to moveparentFolderId
- the parent folder id- Returns:
- the results map
- Throws:
javax.jcr.RepositoryException
- if a repository exception occurred
-
renameFolder
Rename a folder- Parameters:
id
- Identifier of the folder to editname
- The new name- Returns:
- The result map with id and name keys
-
editFolder
Edit a folder- Parameters:
id
- Identifier of the folder to editinputName
- The desired namedescription
- The folder description- Returns:
- The result map with id and name keys
-
deleteFolder
Delete a folder- Parameters:
id
- Identifier of the folder to delete- Returns:
- The result map with the parent id key
-
lockResources
Lock resources- Parameters:
ids
- The id of resources to lock- Returns:
- the result.
-
unlockResources
Unlock resources- Parameters:
ids
- The id of resources to lock- Returns:
- the result.
-
resourceExists
Determines if a resource with given name already exists- Overrides:
resourceExists
in classExplorerResourcesDAO
- Parameters:
parentId
- the id of parent collection. Can be null.name
- the name of resource- Returns:
- true if a resource with same name exists
-
renameFile
Rename a folder- Parameters:
id
- Identifier of the folder to editname
- The new name- Returns:
- The result map with id and name keys
-
editFile
public Map<String,Object> editFile(String id, String inputName, String description, Collection<String> tags) Edit a file- Parameters:
id
- Identifier of the file to editinputName
- The desired namedescription
- The file descriptiontags
- The file tags- Returns:
- The result map with id and name keys
-
setTags
Set tags to resource- Parameters:
resourceId
- the id of resourcestags
- the file tags to set- Returns:
- the file tags
-
copyFiles
public Map<String,Object> copyFiles(List<String> ids, String targetId) throws javax.jcr.RepositoryException Copy file resources- Parameters:
ids
- The list of identifiers for the resources to copytargetId
- The id of target to copy into. Can be null to copy into root folder.- Returns:
- The result map with a message key in case of an error or with the list of uncopied/copied resources
- Throws:
javax.jcr.RepositoryException
- If there is a repository error
-
moveDocuments
public Map<String,Object> moveDocuments(List<String> ids, String targetId) throws javax.jcr.RepositoryException Move documents (files or folders)- Parameters:
ids
- The list of identifiers for the objects to movetargetId
- The id of target to move into. Can be null to move documents to root folder.- Returns:
- The result map with a message key in case of an error or with the list of unmoved/moved objects
- Throws:
javax.jcr.RepositoryException
- If there is a repository error
-
searchFiles
Search for files in the document module- Parameters:
query
- The search querylang
- The search language- Returns:
- A result map containing a resources entry which is a list of the files data
- Throws:
Exception
- if an exception occurs
-
searchFilesByType
Search for files by their type- Parameters:
type
- The file type- Returns:
- A result map containing a resources entry which is a list of the files data
- Throws:
Exception
- if an exception occurs
-
getRootFolder
Get the root folder- Returns:
- the root folder as JSON object
-
getFolder
Get folder- Parameters:
folderId
- the folder id- Returns:
- the folder as JSON object
-
getFile
Get file- Parameters:
resourceId
- the resource id- Returns:
- the file as JSON object
-
getFolders
Get the child folders- Parameters:
parentId
- the parent id. Can be null to get root folders- Returns:
- the sub folders
-
getFiles
Get the child files- Parameters:
parentId
- the parent id. Can be null to get root files- Returns:
- the child files
-
getFileParentInfo
Get the children folders and files of the folder owning the given file- Parameters:
fileId
- the file id- Returns:
- the children folders and files
-
getFoldersAndFiles
Get the child folders and files- Parameters:
folderId
- the parent id. Can be null to get root folders and files- Returns:
- the child folders and files
-
getChildDocumentsData
public List<Map<String,Object>> getChildDocumentsData(String parentId, boolean excludeFolders, boolean excludeFiles) Retrieves the children of a document and extracts its data.- Parameters:
parentId
- Identifier of the parent collection. Can be null to get children of root folder.excludeFolders
- Folders will be excluded if trueexcludeFiles
- Files will be excluded if true- Returns:
- The map of information
-
getChildDocumentsData
public List<Map<String,Object>> getChildDocumentsData(ResourceCollection document, boolean excludeFolders, boolean excludeFiles) Retrieves the children of a document and extracts its data.- Parameters:
document
- the documentexcludeFolders
- Folders will be excluded if trueexcludeFiles
- Files will be excluded if true- Returns:
- The map of information
-
getDocumentData
@Deprecated public Map<String,Object> getDocumentData(String id, boolean excludeFilesInFolderHierarchy) Deprecated.Retrieves the set of standard data for a document (folder or resource)- Parameters:
id
- the document id or null to get root documentexcludeFilesInFolderHierarchy
- Should child files be taken into account when extracting data of a folder- Returns:
- The map of data
-
getDocumentsData
public List<Map<String,Object>> getDocumentsData(List<String> ids, boolean excludeFilesInFolderHierarchy) Retrieves the set of standard data for a list of documents- Parameters:
ids
- The list of document identifiersexcludeFilesInFolderHierarchy
- Should child files be taken into account when extracting data of a folder- Returns:
- The map of data
-
generateWebdavUri
Generates an uri to open a document through webdav- Parameters:
documentId
- The document identifier- Returns:
- The generated uri
-
_extractDocumentData
protected Map<String,Object> _extractDocumentData(AmetysObject document, boolean excludeFolders, boolean excludeFiles) Internal method to extract the valuable data of a document- Parameters:
document
- The document (file or folder)excludeFolders
- Folders will be excluded if trueexcludeFiles
- Files will be excluded if true- Returns:
- the valuable document data
-
_extractFolderData
Internal method to extract the valuable data of a folder- Parameters:
folder
- The folder- Returns:
- the valuable folder data
-
_hasChildren
Internal method to detect if a document has child- Parameters:
folder
- The folderignoreFiles
- Should child files be taken into account to compute the 'hasChildDocuments' data.- Returns:
- the valuable folder data
-
_extractFolderRightData
Internal method to extract the data concerning the right of the current user for a folder- Parameters:
folder
- The folder- Returns:
- The map of right data. Keys are the rights id, and values indicates whether the current user has the right or not.
-
addFile
public Map<String,Object> addFile(Part part, String parentId, boolean unarchive, boolean allowRename, boolean allowUpdate) Add a file- Parameters:
part
- The uploaded part corresponding to the fileparentId
- Identifier of the parent collectionunarchive
- True if the file is an archive that should be unarchived (only available for ZIP file)allowRename
- True if the file can be renamed if it already existsallowUpdate
- True if the file can be updated if it already exists (and allowRename is false)- Returns:
- The result map with id, parentId and name keys
-
addFile
public Map<String,Object> addFile(InputStream inputStream, String fileName, String parentId, boolean unarchive, boolean allowRename, boolean allowUpdate) Add a file- Parameters:
inputStream
- The uploaded input streamfileName
- desired file nameparentId
- Identifier of the parent collectionunarchive
- True if the file is an archive that should be unarchived (only available for ZIP file)allowRename
- True if the file can be renamed if it already existsallowUpdate
- True if the file can be updated if it already exists (and allowRename is false)- Returns:
- The result map with id, parentId and name keys
-
_extractFileData
Internal method to extract the valuable data of a file- Parameters:
file
- The file- Returns:
- the valuable file data
-
_extractFileRightData
Internal method to extract the data concerning the right of the current user for file- Parameters:
file
- The file- Returns:
- The map of right data. Keys are the rights id, and values indicates whether the current user has the right or not.
-
_extractFileLockData
Internal method to extract the data relative to the lock state of a file- Parameters:
file
- The file- Returns:
- The image specific data
-
_setComment
Description copied from class:ExplorerResourcesDAO
Update the content of a comment- Overrides:
_setComment
in classExplorerResourcesDAO
- Parameters:
comment
- The comment to updatecontent
- The content as string
-
_getComment
Description copied from class:ExplorerResourcesDAO
Get the content of a comment as a String- Overrides:
_getComment
in classExplorerResourcesDAO
- Parameters:
post
- the post- Returns:
- The content as String
- Throws:
AmetysRepositoryException
- if failed to parse comment
-
_getCommentForEditing
Description copied from class:ExplorerResourcesDAO
Get the content of a comment to edit as a String- Overrides:
_getCommentForEditing
in classExplorerResourcesDAO
- Parameters:
post
- the post- Returns:
- The content as String
- Throws:
AmetysRepositoryException
- if failed to parse comment
-
_canView
Indicates if the current user can view the folder- Parameters:
folder
- The folder to test- Returns:
- true if the folder can be viewed
-
_canView
Indicates if the current user can view the file- Parameters:
file
- The file to test- Returns:
- true if the file can be viewed
-
getCMISProperties
Description copied from class:ExplorerResourcesDAO
Get the CMIS properties of collection- Overrides:
getCMISProperties
in classExplorerResourcesDAO
- Parameters:
id
- The id of CMIS collection- Returns:
- the CMIS properties to access CMIS repository
-
addCMISCollection
public Map<String,Object> addCMISCollection(String parentId, String originalName, String url, String login, String password, String repoId, String mountPoint, boolean renameIfExists) Description copied from class:ExplorerResourcesDAO
Creates a new CMIS folder (seeCMISRootResourcesCollection
)- Overrides:
addCMISCollection
in classExplorerResourcesDAO
- Parameters:
parentId
- the id of parent folderoriginalName
- the original name if CMIS folderurl
- The url of CMIS repositorylogin
- The user's login to access CMIS repositorypassword
- The user's password to access CMIS repositoryrepoId
- The id of CMIS repositorymountPoint
- The mount point in the serverrenameIfExists
- true to automatically renamed CMIS folder if requested name already exists- Returns:
- the result map with id of created node
-
editCMISCollection
public Map<String,Object> editCMISCollection(String id, String name, String url, String login, String password, String repoId, String mountPoint) throws javax.jcr.RepositoryException Edits a CMIS folder (seeCMISRootResourcesCollection
)- Parameters:
id
- the id of CMIS foldername
- The name of the CMIS folderurl
- The url of CMIS repositorylogin
- The user's login to access CMIS repositorypassword
- The user's password to access CMIS repositoryrepoId
- The id of CMIS repositorymountPoint
- The mount point to use for the repository- Returns:
- the result map with id of edited node
- Throws:
javax.jcr.RepositoryException
- If an error occurred
-
isCMISCollection
Description copied from class:ExplorerResourcesDAO
Determines if a object is aCMISRootResourcesCollection
- Overrides:
isCMISCollection
in classExplorerResourcesDAO
- Parameters:
id
- The id of object- Returns:
- true if it is a CMIS root folder
-
getDocumentsCount
Count the total of documents in the project- Parameters:
project
- The project- Returns:
- The total of documents, or null if the module is not activated
-
createFile
Create a file- Parameters:
folderId
- the folder parent idtype
- the type of file (word, excel, powerpoint, ...)- Returns:
- the new file properties
- Throws:
Exception
- if an error occurred
-
_comment2json
Description copied from class:ExplorerResourcesDAO
Get JSOn representation of a comment- Overrides:
_comment2json
in classExplorerResourcesDAO
- Parameters:
comment
- The commentisEdition
- true to get the comment in edit mode- Returns:
- the comment as JSON
-