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 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, _i18nUtils, _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 comment_version2json
(JCRResource resource, ExplorerResourcesDAO.VersionInformation versionInformation) Get the JSON representation of a version of a resourceaddCMISCollection
(String parentId, String originalName, String url, String login, String password, String repoId, 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 resourcesdeleteFolder
(String id) Delete a foldereditCMISCollection
(String id, String name, String url, String login, String password, String repoId) 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 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)renameFile
(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, 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, getRootNodesInfo, getUserRight, getUserRights, hasRight, moveObject, moveObject, renameObject, renameObject, renameResource, renameResource, resourceExists, resourceHistory, 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
-
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
-
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
-
_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
-
_version2json
protected Map<String,Object> _version2json(JCRResource resource, ExplorerResourcesDAO.VersionInformation versionInformation) throws javax.jcr.RepositoryException Description copied from class:ExplorerResourcesDAO
Get the JSON representation of a version of a resource- Overrides:
_version2json
in classExplorerResourcesDAO
- Parameters:
resource
- the resourceversionInformation
- the version information- Returns:
- the version as JSON object
- Throws:
javax.jcr.RepositoryException
- if failed to get revision
-
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, 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 repositoryrenameIfExists
- 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) 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 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
-