protected List<RepositoryFile> getReferrers( ObjectId fileId, List<RepositoryObjectType> referrerTypes ) throws KettleException { // Use a result list to append to; Removing from the files list was causing a concurrency exception List<RepositoryFile> result = new ArrayList<RepositoryFile>(); readWriteLock.readLock().lock(); List<RepositoryFile> files; try { files = pur.getReferrers( fileId.getId() ); } finally { readWriteLock.readLock().unlock(); } // Filter out types if ( referrerTypes != null && referrerTypes.size() > 0 ) { for ( RepositoryFile file : files ) { if ( referrerTypes.contains( getObjectType( file.getName() ) ) ) { result.add( file ); } } } return result; }
public List<RepositoryFile> call() throws Exception { return delegatee.getReferrers( fileId ); } }, Messages.getInstance().getString( "ExceptionLoggingDecorator.getReferrers", fileId ) ); //$NON-NLS-1$
public List<RepositoryFileDto> getReferrers( String fileId ) { List<RepositoryFileDto> fileList = new ArrayList<RepositoryFileDto>(); for ( RepositoryFile file : repo.getReferrers( fileId ) ) { fileList.add( repositoryFileAdapter.marshal( file ) ); } return fileList; }
/** * Get a list of {@link org.pentaho.platform.api.repository2.unified.RepositoryFile}s that reference the * RepositoryFile identified by fileId. * * @param fileId * file id * @return list of repository files that reference the fileId repository file */ @Override public List<RepositoryFile> getReferrers( final Serializable fileId ) { return repository.getReferrers( fileId ); }
@Override public RepositoryFile call() throws Exception { List<RepositoryFile> referrers = unifiedRepository.getReferrers( file.getId() ); // Loop through nodes referring to the target file, return the first one designated as an ACL node int i = referrers.size(); while ( i-- > 0 ) { RepositoryFile referrer = referrers.get( i ); NodeRepositoryFileData dataForRead = unifiedRepository.getDataForRead( referrer.getId(), NodeRepositoryFileData.class ); if ( dataForRead != null && dataForRead.getNode().hasProperty( IS_ACL_NODE ) ) { return referrer; } } // No ACL node found return null; } } );