@Override public ExtRepositoryFolderAdapter updateFolder( long folderId, String name, String description, ServiceContext serviceContext) throws PortalException { String extRepositoryFolderKey = getExtRepositoryObjectKey(folderId); ExtRepositoryFolder extRepositoryFolder = _extRepository.getExtRepositoryObject( ExtRepositoryObjectType.FOLDER, extRepositoryFolderKey); ExtRepositoryFolder parentExtRepositoryFolder = _extRepository.getExtRepositoryParentFolder(extRepositoryFolder); ExtRepositoryFolder newExtRepositoryFolder = _extRepository.moveExtRepositoryObject( ExtRepositoryObjectType.FOLDER, extRepositoryFolderKey, parentExtRepositoryFolder.getExtRepositoryModelKey(), name); ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); extRepositoryAdapterCache.remove(extRepositoryFolderKey); return _toExtRepositoryObjectAdapter( ExtRepositoryObjectAdapterType.FOLDER, newExtRepositoryFolder); }
private ExtRepositoryFileVersionAdapter _toExtRepositoryFileVersionAdapter( ExtRepositoryFileEntryAdapter extRepositoryFileEntryAdapter, ExtRepositoryFileVersion extRepositoryFileVersion) throws PortalException { ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); String extRepositoryModelKey = extRepositoryFileVersion.getExtRepositoryModelKey(); ExtRepositoryFileVersionAdapter extRepositoryVersionAdapter = extRepositoryAdapterCache.get(extRepositoryModelKey); if (extRepositoryVersionAdapter == null) { RepositoryEntry repositoryEntry = getRepositoryEntry(extRepositoryModelKey); extRepositoryVersionAdapter = new ExtRepositoryFileVersionAdapter( this, repositoryEntry.getRepositoryEntryId(), repositoryEntry.getUuid(), extRepositoryFileEntryAdapter, extRepositoryFileVersion); extRepositoryAdapterCache.put(extRepositoryVersionAdapter); } return extRepositoryVersionAdapter; }
@Override public FileEntry updateFileEntry( long userId, long fileEntryId, String sourceFileName, String mimeType, String title, String description, String changeLog, boolean majorVersion, InputStream inputStream, long size, ServiceContext serviceContext) throws PortalException { String extRepositoryFileEntryKey = getExtRepositoryObjectKey(fileEntryId); ExtRepositoryFileEntry extRepositoryFileEntry = _extRepository.getExtRepositoryObject( ExtRepositoryObjectType.FILE, extRepositoryFileEntryKey); boolean needsCheckIn = false; if (!isCheckedOut(extRepositoryFileEntry)) { _extRepository.checkOutExtRepositoryFileEntry(extRepositoryFileEntryKey); needsCheckIn = true; } if (inputStream != null) { extRepositoryFileEntry = _extRepository.updateExtRepositoryFileEntry( extRepositoryFileEntryKey, mimeType, inputStream); } if (!title.equals(extRepositoryFileEntry.getTitle())) { ExtRepositoryFolder folder = _extRepository.getExtRepositoryParentFolder(extRepositoryFileEntry); extRepositoryFileEntry = _extRepository.moveExtRepositoryObject( ExtRepositoryObjectType.FILE, extRepositoryFileEntryKey, folder.getExtRepositoryModelKey(), title); ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); extRepositoryAdapterCache.remove(extRepositoryFileEntryKey); } if (needsCheckIn) { _extRepository.checkInExtRepositoryFileEntry( extRepositoryFileEntryKey, majorVersion, changeLog); } return _toExtRepositoryObjectAdapter( ExtRepositoryObjectAdapterType.FILE, extRepositoryFileEntry); }
@Override public void deleteFolder(long folderId) throws PortalException { String extRepositoryFolderKey = getExtRepositoryObjectKey(folderId); _extRepository.deleteExtRepositoryObject( ExtRepositoryObjectType.FOLDER, extRepositoryFolderKey); ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); extRepositoryAdapterCache.remove(extRepositoryFolderKey); }
@Override public void deleteFileEntry(long fileEntryId) throws PortalException { String extRepositoryFileEntryKey = getExtRepositoryObjectKey(fileEntryId); _extRepository.deleteExtRepositoryObject( ExtRepositoryObjectType.FILE, extRepositoryFileEntryKey); ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); extRepositoryAdapterCache.remove(extRepositoryFileEntryKey); }
@SuppressWarnings("unchecked") private <T extends ExtRepositoryObjectAdapter<?>> T _toExtRepositoryObjectAdapter( ExtRepositoryObjectAdapterType<T> extRepositoryObjectAdapterType, ExtRepositoryObject extRepositoryObject) throws PortalException { ExtRepositoryAdapterCache extRepositoryAdapterCache = ExtRepositoryAdapterCache.getInstance(); String extRepositoryModelKey = extRepositoryObject.getExtRepositoryModelKey(); ExtRepositoryObjectAdapter<?> extRepositoryObjectAdapter = extRepositoryAdapterCache.get(extRepositoryModelKey); if (extRepositoryObjectAdapter == null) { RepositoryEntry repositoryEntry = getRepositoryEntry(extRepositoryModelKey); if (extRepositoryObject instanceof ExtRepositoryFolder) { ExtRepositoryFolder extRepositoryFolder = (ExtRepositoryFolder) extRepositoryObject; extRepositoryObjectAdapter = new ExtRepositoryFolderAdapter( this, repositoryEntry.getRepositoryEntryId(), repositoryEntry.getUuid(), extRepositoryFolder); } else { ExtRepositoryFileEntry extRepositoryFileEntry = (ExtRepositoryFileEntry) extRepositoryObject; extRepositoryObjectAdapter = new ExtRepositoryFileEntryAdapter( this, repositoryEntry.getRepositoryEntryId(), repositoryEntry.getUuid(), extRepositoryFileEntry); _forceGetFileVersions((ExtRepositoryFileEntryAdapter) extRepositoryObjectAdapter); _checkAssetEntry((ExtRepositoryFileEntryAdapter) extRepositoryObjectAdapter); } extRepositoryAdapterCache.put(extRepositoryObjectAdapter); } if (extRepositoryObjectAdapterType == ExtRepositoryObjectAdapterType.FILE) { if (!(extRepositoryObjectAdapter instanceof ExtRepositoryFileEntryAdapter)) { throw new NoSuchFileEntryException( "External repository object is not a file " + extRepositoryObject); } } else if (extRepositoryObjectAdapterType == ExtRepositoryObjectAdapterType.FOLDER) { if (!(extRepositoryObjectAdapter instanceof ExtRepositoryFolderAdapter)) { throw new NoSuchFolderException( "External repository object is not a folder " + extRepositoryObject); } } else if (extRepositoryObjectAdapterType != ExtRepositoryObjectAdapterType.OBJECT) { throw new IllegalArgumentException( "Unsupported repository object type " + extRepositoryObjectAdapterType); } return (T) extRepositoryObjectAdapter; }