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; }
@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; }