@Test public void moveFile() throws Exception { Long fileId = 500L; String targetObjectType = "TARGET"; Long targetObjectId = 42L; AcmFolder targetFolder = new AcmFolder(); targetFolder.setCmisFolderId("targetCmisFolderId"); targetFolder.setCmisRepositoryId("targetCmisRepositoryId"); EcmFile toMove = new EcmFile(); AcmFolder sourceFolder = new AcmFolder(); toMove.setFolder(sourceFolder); sourceFolder.setCmisFolderId("sourceCmisFolderId"); toMove.setVersionSeriesId("versionSeriesId"); AcmContainer targetContainer = new AcmContainer(); Map<String, Object> props = new HashMap<>(); props.put(EcmFileConstants.CMIS_OBJECT_ID, toMove.getVersionSeriesId()); props.put(EcmFileConstants.DST_FOLDER_ID, targetFolder.getCmisFolderId()); props.put(EcmFileConstants.SRC_FOLDER_ID, toMove.getFolder().getCmisFolderId()); props.put(EcmFileConstants.CONFIGURATION_REFERENCE, null); props.put(EcmFileConstants.VERSIONING_STATE, "versioningState"); Document cmisDocument = createMock(Document.class); expect(mockEcmFileDao.find(fileId)).andReturn(toMove); expect(mockCmisConfigUtils.getCmisConfiguration(targetFolder.getCmisRepositoryId())).andReturn(null); expect(mockCmisConfigUtils.getVersioningState(targetFolder.getCmisRepositoryId())).andReturn("versioningState"); expect(mockContainerDao.findFolderByObjectTypeIdAndRepositoryId(targetObjectType, targetObjectId, targetFolder.getCmisRepositoryId())).andReturn(targetContainer); expect(mockMuleContextManager.send(EcmFileConstants.MULE_ENDPOINT_MOVE_FILE, toMove, props)).andReturn(mockMuleMessage); expect(mockMuleMessage.getPayload(CmisObject.class)).andReturn(cmisDocument); expect(cmisDocument.getVersionSeriesId()).andReturn("newVersionSeriesId"); Capture<EcmFile> saved = Capture.newInstance(); expect(mockEcmFileDao.save(capture(saved))).andReturn(null); expect(mockFileParticipantService.setFileParticipantsFromParentFolder(null)).andReturn(null); replayAll(); unit.moveFile(fileId, targetObjectId, targetObjectType, targetFolder); verifyAll(); EcmFile movedFile = saved.getValue(); assertEquals("newVersionSeriesId", movedFile.getVersionSeriesId()); assertEquals(targetFolder, movedFile.getFolder()); assertEquals(targetContainer, movedFile.getContainer()); }
@Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") public EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId) throws AcmUserActionFailedException, AcmObjectNotFoundException, AcmCreateObjectFailedException { AcmFolder folder = getFolderDao().find(dstFolderId); if (folder == null) { throw new AcmObjectNotFoundException(AcmFolderConstants.OBJECT_FOLDER_TYPE, dstFolderId, "Folder not found", null); } return moveFile(fileId, targetObjectId, targetObjectType, folder); }
EcmFileServiceImpl implements ApplicationEventPublisherAware, EcmFileService { @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") public EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId) throws AcmUserActionFailedException, AcmObjectNotFoundException, AcmCreateObjectFailedException { AcmFolder folder = getFolderDao().find(dstFolderId); if (folder == null) { throw new AcmObjectNotFoundException(AcmFolderConstants.OBJECT_FOLDER_TYPE, dstFolderId, "Folder not found", null); } return moveFile(fileId, targetObjectId, targetObjectType, folder); } }
EcmFileServiceImpl implements ApplicationEventPublisherAware, EcmFileService { @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") public EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId) throws AcmUserActionFailedException, AcmObjectNotFoundException, AcmCreateObjectFailedException { AcmFolder folder = getFolderDao().find(dstFolderId); if (folder == null) { throw new AcmObjectNotFoundException(AcmFolderConstants.OBJECT_FOLDER_TYPE, dstFolderId, "Folder not found", null); } return moveFile(fileId, targetObjectId, targetObjectType, folder); }  }
EcmFileServiceImpl implements ApplicationEventPublisherAware, EcmFileService { @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") public EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId) throws AcmUserActionFailedException, AcmObjectNotFoundException, AcmCreateObjectFailedException { AcmFolder folder = getFolderDao().find(dstFolderId); if (folder == null) { throw new AcmObjectNotFoundException(AcmFolderConstants.OBJECT_FOLDER_TYPE, dstFolderId, "Folder not found", null); } return moveFile(fileId, targetObjectId, targetObjectType, folder); }  @Override CmisObject findObjectByPath(String path); @Override CmisObject findObjectById(String cmisRepositoryId, String cmisId); @Override @Transactional @Deprecated EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Override @Transactional @Deprecated EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId,
            String cmisRepositoryId); @Override @Transactional EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId,
            String cmisRepositoryId, Document existingCmisDocument); @Override @Deprecated @Transactional EcmFile upload(String arkcaseFileName, String fileType, MultipartFile file, Authentication authentication,
            String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Transactional @Override EcmFile upload(String arkcaseFileName, String fileType, String fileLang, MultipartFile file, Authentication authentication,
            String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Override @Transactional EcmFile upload(Authentication authentication, String parentObjectType, Long parentObjectId, String targetCmisFolderId,
            String arkcaseFileName, InputStream fileContents, EcmFile metadata); @Override @Transactional EcmFile upload(Authentication authentication, String parentObjectType, Long parentObjectId, String targetCmisFolderId,
            String arkcaseFileName, InputStream fileContents, EcmFile metadata, Document existingCmisDocument); @Override @Transactional EcmFile upload(Authentication authentication, MultipartFile file, String targetCmisFolderId, String parentObjectType,
            Long parentObjectId, EcmFile metadata); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile update(EcmFile ecmFile, MultipartFile file, Authentication authentication); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile update(EcmFile ecmFile, InputStream inputStream, Authentication authentication); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") String download(Long id); @Override @AcmAcquireObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") String checkout(Long id); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") InputStream downloadAsInputStream(Long id); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") InputStream downloadAsInputStream(Long id, String version); @Override String createFolder(String folderPath); @Override String createFolder(String folderPath, String cmisRepositoryId); @Override @Transactional AcmContainer getOrCreateContainer(String objectType, Long objectId); @Override @Transactional AcmContainer getOrCreateContainer(String objectType, Long objectId, String cmisRepositoryId); @Override AcmContainer createContainerFolder(String objectType, Long objectId, String cmisRepositoryId); @Override AcmCmisObjectList allFilesForContainer(Authentication auth, AcmContainer container); @Override AcmCmisObjectList allFilesForFolder(Authentication auth, AcmContainer container, Long folderId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile setFilesActiveVersion(Long fileId, String versionTag); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listAllSubFolderChildren(String category, Authentication auth, AcmContainer container, Long folderId,
            int startRow, int maxRows, String sortBy, String sortDirection); @Override @PreAuthorize("hasPermission(#container.folder.id, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFolderContents(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFlatSearchResults(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows, String searchFilter); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFlatSearchResultsAdvanced(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows, String searchFilter); @Override @PreAuthorize("hasPermission(#container.folder.id, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFileFolderByCategory(Authentication auth, AcmContainer container, String sortBy, String sortDirection,
            int startRow, int maxRows, String category); @Override @PreAuthorize("hasPermission(#fileId, 'FILE', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") void declareFileAsRecord(Long fileId, Authentication authentication); @Override @Transactional @PreAuthorize("hasPermission(#folderId, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FOLDER", lockType = "WRITE") void declareFolderAsRecord(Long folderId, Authentication authentication, String parentObjectType, Long parentObjectId); @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFile(Long fileId, AcmFolder targetFolder, AcmContainer targetContainer); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 2, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFileInArkcase(EcmFile originalFile, String copiedFileNodeId, AcmFolder targetFolder); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateFileType(Long fileId, String fileType); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateFile(EcmFile ecmFile); @Override int getTotalPageCount(String parentObjectType, Long parentObjectId, List<String> totalPageCountFileTypes,
            List<String> totalPageCountMimeTypes, Authentication auth); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateSecurityField(Long fileId, String securityFieldValue); @Override List<EcmFile> saveFilesToTempDirectory(MultiValueMap<String, MultipartFile> files); @Override boolean deleteTempFile(String uniqueFileName); @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId); @Override @Transactional @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, AcmFolder folder); @Override @Transactional @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFileInArkcase(EcmFile file, AcmFolder targetParentFolder, String targetObjectType); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFileFromArkcase(Long fileId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId, Boolean allVersions); @Override void deleteCmisObject(CmisObject cmisObject, String cmisRepositoryId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId, Long parentId, String parentType); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFileInArkcase(EcmFile file); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile renameFile(Long fileId, String newFileName); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile renameFileInArkcase(EcmFile file, String newFileName); @Override @Transactional void removeLockAndSendMessage(Long objectId, String message); @Override EcmFile findById(Long fileId); @Override EcmFile findFileByContainerAndFileType(Long containerId, String fileType); @Override File convertFile(String fileKey, String version, String fileExtension, String fileName, String mimeType, EcmFile ecmFile); EcmFileTransaction getEcmFileTransaction(); void setEcmFileTransaction(EcmFileTransaction ecmFileTransaction); EcmFileDao getEcmFileDao(); void setEcmFileDao(EcmFileDao ecmFileDao); MuleContextManager getMuleContextManager(); void setMuleContextManager(MuleContextManager muleContextManager); Map<String, String> getSortParameterNameToCmisFieldName(); void setSortParameterNameToCmisFieldName(Map<String, String> sortParameterNameToCmisFieldName); Map<String, String> getSolrObjectTypeToAcmType(); void setSolrObjectTypeToAcmType(Map<String, String> solrObjectTypeToAcmType); AcmContainerDao getContainerFolderDao(); void setContainerFolderDao(AcmContainerDao containerFolderDao); ExecuteSolrQuery getSolrQuery(); void setSolrQuery(ExecuteSolrQuery solrQuery); Map<String, String> getCategoryMap(); void setCategoryMap(Map<String, String> categoryMap); SearchResults getSearchResults(); void setSearchResults(SearchResults searchResults); AcmFolderDao getFolderDao(); void setFolderDao(AcmFolderDao folderDao); ApplicationEventPublisher getApplicationEventPublisher(); @Override void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher); FolderAndFilesUtils getFolderAndFilesUtils(); void setFolderAndFilesUtils(FolderAndFilesUtils folderAndFilesUtils); CmisConfigUtils getCmisConfigUtils(); void setCmisConfigUtils(CmisConfigUtils cmisConfigUtils); EcmFileParticipantService getFileParticipantService(); void setFileParticipantService(EcmFileParticipantService participantService); AcmParticipantService getParticipantService(); void setParticipantService(AcmParticipantService participantService); EcmFileConfig getEcmFileConfig(); void setEcmFileConfig(EcmFileConfig ecmFileConfig); EmailSenderConfig getEmailSenderConfig(); void setEmailSenderConfig(EmailSenderConfig emailSenderConfig); MessageChannel getGenericMessagesChannel(); void setGenericMessagesChannel(MessageChannel genericMessagesChannel); AcmObjectLockService getObjectLockService(); void setObjectLockService(AcmObjectLockService objectLockService); }
EcmFileServiceImpl implements ApplicationEventPublisherAware, EcmFileService { @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") public EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId) throws AcmUserActionFailedException, AcmObjectNotFoundException, AcmCreateObjectFailedException { AcmFolder folder = getFolderDao().find(dstFolderId); if (folder == null) { throw new AcmObjectNotFoundException(AcmFolderConstants.OBJECT_FOLDER_TYPE, dstFolderId, "Folder not found", null); } return moveFile(fileId, targetObjectId, targetObjectType, folder); }  @Override CmisObject findObjectByPath(String path); @Override CmisObject findObjectById(String cmisRepositoryId, String cmisId); @Override @Transactional @Deprecated EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Override @Transactional @Deprecated EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId,
            String cmisRepositoryId); @Override @Transactional EcmFile upload(String arkcaseFileName, String fileType, String fileCategory, InputStream fileContents, String fileContentType,
            String fileName, Authentication authentication, String targetCmisFolderId, String parentObjectType, Long parentObjectId,
            String cmisRepositoryId, Document existingCmisDocument); @Override @Deprecated @Transactional EcmFile upload(String arkcaseFileName, String fileType, MultipartFile file, Authentication authentication,
            String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Transactional @Override EcmFile upload(String arkcaseFileName, String fileType, String fileLang, MultipartFile file, Authentication authentication,
            String targetCmisFolderId, String parentObjectType, Long parentObjectId); @Override @Transactional EcmFile upload(Authentication authentication, String parentObjectType, Long parentObjectId, String targetCmisFolderId,
            String arkcaseFileName, InputStream fileContents, EcmFile metadata); @Override @Transactional EcmFile upload(Authentication authentication, String parentObjectType, Long parentObjectId, String targetCmisFolderId,
            String arkcaseFileName, InputStream fileContents, EcmFile metadata, Document existingCmisDocument); @Override @Transactional EcmFile upload(Authentication authentication, MultipartFile file, String targetCmisFolderId, String parentObjectType,
            Long parentObjectId, EcmFile metadata); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile update(EcmFile ecmFile, MultipartFile file, Authentication authentication); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile update(EcmFile ecmFile, InputStream inputStream, Authentication authentication); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") String download(Long id); @Override @AcmAcquireObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") String checkout(Long id); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") InputStream downloadAsInputStream(Long id); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") InputStream downloadAsInputStream(Long id, String version); @Override String createFolder(String folderPath); @Override String createFolder(String folderPath, String cmisRepositoryId); @Override @Transactional AcmContainer getOrCreateContainer(String objectType, Long objectId); @Override @Transactional AcmContainer getOrCreateContainer(String objectType, Long objectId, String cmisRepositoryId); @Override AcmContainer createContainerFolder(String objectType, Long objectId, String cmisRepositoryId); @Override AcmCmisObjectList allFilesForContainer(Authentication auth, AcmContainer container); @Override AcmCmisObjectList allFilesForFolder(Authentication auth, AcmContainer container, Long folderId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile setFilesActiveVersion(Long fileId, String versionTag); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listAllSubFolderChildren(String category, Authentication auth, AcmContainer container, Long folderId,
            int startRow, int maxRows, String sortBy, String sortDirection); @Override @PreAuthorize("hasPermission(#container.folder.id, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFolderContents(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFlatSearchResults(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows, String searchFilter); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFlatSearchResultsAdvanced(Authentication auth, AcmContainer container, String category, String sortBy,
            String sortDirection, int startRow, int maxRows, String searchFilter); @Override @PreAuthorize("hasPermission(#container.folder.id, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "CONTAINER", lockType = "READ", lockChildObjects = false, unlockChildObjects = false) AcmCmisObjectList listFileFolderByCategory(Authentication auth, AcmContainer container, String sortBy, String sortDirection,
            int startRow, int maxRows, String category); @Override @PreAuthorize("hasPermission(#fileId, 'FILE', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") void declareFileAsRecord(Long fileId, Authentication authentication); @Override @Transactional @PreAuthorize("hasPermission(#folderId, 'FOLDER', 'read|group-read|write|group-write')") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FOLDER", lockType = "WRITE") void declareFolderAsRecord(Long folderId, Authentication authentication, String parentObjectType, Long parentObjectId); @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFile(Long fileId, AcmFolder targetFolder, AcmContainer targetContainer); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "READ") @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 2, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) EcmFile copyFileInArkcase(EcmFile originalFile, String copiedFileNodeId, AcmFolder targetFolder); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateFileType(Long fileId, String fileType); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateFile(EcmFile ecmFile); @Override int getTotalPageCount(String parentObjectType, Long parentObjectId, List<String> totalPageCountFileTypes,
            List<String> totalPageCountMimeTypes, Authentication auth); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "WRITE") EcmFile updateSecurityField(Long fileId, String securityFieldValue); @Override List<EcmFile> saveFilesToTempDirectory(MultiValueMap<String, MultipartFile> files); @Override boolean deleteTempFile(String uniqueFileName); @Override @Transactional @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, Long dstFolderId); @Override @Transactional @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 3, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFile(Long fileId, Long targetObjectId, String targetObjectType, AcmFolder folder); @Override @Transactional @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 1, objectType = "FOLDER", lockType = "WRITE", lockChildObjects = false, unlockChildObjects = false) @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile moveFileInArkcase(EcmFile file, AcmFolder targetParentFolder, String targetObjectType); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFileFromArkcase(Long fileId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId, Boolean allVersions); @Override void deleteCmisObject(CmisObject cmisObject, String cmisRepositoryId); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFile(Long objectId, Long parentId, String parentType); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") void deleteFileInArkcase(EcmFile file); @Override @AcmAcquireAndReleaseObjectLock(objectIdArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile renameFile(Long fileId, String newFileName); @Override @AcmAcquireAndReleaseObjectLock(acmObjectArgIndex = 0, objectType = "FILE", lockType = "DELETE") EcmFile renameFileInArkcase(EcmFile file, String newFileName); @Override @Transactional void removeLockAndSendMessage(Long objectId, String message); @Override EcmFile findById(Long fileId); @Override EcmFile findFileByContainerAndFileType(Long containerId, String fileType); @Override File convertFile(String fileKey, String version, String fileExtension, String fileName, String mimeType, EcmFile ecmFile); EcmFileTransaction getEcmFileTransaction(); void setEcmFileTransaction(EcmFileTransaction ecmFileTransaction); EcmFileDao getEcmFileDao(); void setEcmFileDao(EcmFileDao ecmFileDao); MuleContextManager getMuleContextManager(); void setMuleContextManager(MuleContextManager muleContextManager); Map<String, String> getSortParameterNameToCmisFieldName(); void setSortParameterNameToCmisFieldName(Map<String, String> sortParameterNameToCmisFieldName); Map<String, String> getSolrObjectTypeToAcmType(); void setSolrObjectTypeToAcmType(Map<String, String> solrObjectTypeToAcmType); AcmContainerDao getContainerFolderDao(); void setContainerFolderDao(AcmContainerDao containerFolderDao); ExecuteSolrQuery getSolrQuery(); void setSolrQuery(ExecuteSolrQuery solrQuery); Map<String, String> getCategoryMap(); void setCategoryMap(Map<String, String> categoryMap); SearchResults getSearchResults(); void setSearchResults(SearchResults searchResults); AcmFolderDao getFolderDao(); void setFolderDao(AcmFolderDao folderDao); ApplicationEventPublisher getApplicationEventPublisher(); @Override void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher); FolderAndFilesUtils getFolderAndFilesUtils(); void setFolderAndFilesUtils(FolderAndFilesUtils folderAndFilesUtils); CmisConfigUtils getCmisConfigUtils(); void setCmisConfigUtils(CmisConfigUtils cmisConfigUtils); EcmFileParticipantService getFileParticipantService(); void setFileParticipantService(EcmFileParticipantService participantService); AcmParticipantService getParticipantService(); void setParticipantService(AcmParticipantService participantService); EcmFileConfig getEcmFileConfig(); void setEcmFileConfig(EcmFileConfig ecmFileConfig); EmailSenderConfig getEmailSenderConfig(); void setEmailSenderConfig(EmailSenderConfig emailSenderConfig); MessageChannel getGenericMessagesChannel(); void setGenericMessagesChannel(MessageChannel genericMessagesChannel); AcmObjectLockService getObjectLockService(); void setObjectLockService(AcmObjectLockService objectLockService);  }