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 void revertFileEntry( long userId, long fileEntryId, String version, ServiceContext serviceContext) throws PortalException { String extRepositoryFileEntryKey = getExtRepositoryObjectKey(fileEntryId); ExtRepositoryFileEntry extRepositoryFileEntry = _extRepository.getExtRepositoryObject( ExtRepositoryObjectType.FILE, extRepositoryFileEntryKey); ExtRepositoryFileVersion extRepositoryFileVersion = null; List<ExtRepositoryFileVersion> extRepositoryFileVersions = _extRepository.getExtRepositoryFileVersions(extRepositoryFileEntry); for (ExtRepositoryFileVersion curExtRepositoryFileVersion : extRepositoryFileVersions) { String curVersion = curExtRepositoryFileVersion.getVersion(); if (curVersion.equals(version)) { extRepositoryFileVersion = curExtRepositoryFileVersion; break; } } if (extRepositoryFileVersion != null) { InputStream inputStream = _extRepository.getContentStream(extRepositoryFileVersion); boolean needsCheckIn = false; if (!isCheckedOut(extRepositoryFileEntry)) { try { _extRepository.checkOutExtRepositoryFileEntry(extRepositoryFileEntryKey); needsCheckIn = true; } catch (UnsupportedOperationException uoe) { } } _extRepository.updateExtRepositoryFileEntry( extRepositoryFileEntryKey, extRepositoryFileVersion.getMimeType(), inputStream); String changeLog = LanguageUtil.format(serviceContext.getLocale(), "reverted-to-x", version, false); if (needsCheckIn) { try { _extRepository.checkInExtRepositoryFileEntry(extRepositoryFileEntryKey, true, changeLog); } catch (UnsupportedOperationException uoe) { } } } else { throw new NoSuchFileVersionException( "No file version with {extRepositoryModelKey=" + extRepositoryFileEntry.getExtRepositoryModelKey() + ", version: " + version + "}"); } }