List<RepositoryFileTree> subdirectories = new ArrayList<RepositoryFileTree>(); if ( root.getChildren() != null && !root.getChildren().isEmpty() ) { Iterator<RepositoryFileTree> repObjIter = root.getChildren().iterator(); List<RepositoryFile> files = new ArrayList<RepositoryFile>();
@Override public List<RepositoryElementMetaInterface> getRepositoryObjects( ) { if ( fileChildren == null ) { fileChildren = new ArrayList<>(); synchronized ( fileChildren ) { UnifiedRepositoryLockService lockService = (UnifiedRepositoryLockService) registry.getService( ILockService.class ); RepositoryFileTree tree = repository.getTree( new RepositoryRequest( this.self.getPath(), showHidden, 1, null ) ); for ( RepositoryFileTree tchild : tree.getChildren() ) { RepositoryFile child = tchild.getFile(); if ( !child.isFolder() ) { RepositoryLock lock = null; try { lock = lockService.getLock( child ); RepositoryObjectType objectType = PurRepository.getObjectType( child.getName() ); EERepositoryObject repositoryObject = new EERepositoryObject( child, this, null, objectType, null, lock, false ); repositoryObject.setVersioningEnabled( tchild.getVersioningEnabled() ); repositoryObject.setVersionCommentEnabled( tchild.getVersionCommentEnabled() ); fileChildren.add( repositoryObject ); } catch ( KettleException e ) { logger.error( "Error converting Unified Repository file to PDI RepositoryObject: " + child.getPath() + ". File will be skipped", e ); } } } } } return fileChildren; }
private void fillRepositoryDirectoryFromTree( final RepositoryDirectoryInterface parentDir, final RepositoryFileTree treeNode ) throws KettleException { try { List<RepositoryElementMetaInterface> fileChildren = new ArrayList<RepositoryElementMetaInterface>(); List<RepositoryFileTree> children = treeNode.getChildren(); if ( children != null ) { for ( RepositoryFileTree child : children ) { if ( child.getFile().isFolder() ) { RepositoryDirectory dir = new RepositoryDirectory( parentDir, child.getFile().getName() ); dir.setObjectId( new StringObjectId( child.getFile().getId().toString() ) ); parentDir.addSubdirectory( dir ); fillRepositoryDirectoryFromTree( dir, child ); } else { // a real file, like a Transformation or Job RepositoryLock lock = unifiedRepositoryLockService.getLock( child.getFile() ); RepositoryObjectType objectType = getObjectType( child.getFile().getName() ); fileChildren.add( new EERepositoryObject( child, parentDir, null, objectType, null, lock, false ) ); } } parentDir.setRepositoryObjects( fileChildren ); } } catch ( Exception e ) { throw new KettleException( "Unable to load directory structure from repository", e ); } }
public void populateFoldersLazy( RepositoryDirectory repositoryDirectory ) { RepositoryRequest repositoryRequest = new RepositoryRequest( repositoryDirectory.getPath(), true, 1, null ); repositoryRequest.setTypes( RepositoryRequest.FILES_TYPE_FILTER.FOLDERS ); repositoryRequest.setIncludeSystemFolders( false ); RepositoryFileTree tree = getRepository().getUnderlyingRepository().getTree( repositoryRequest ); for ( RepositoryFileTree repositoryFileTree : tree.getChildren() ) { org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile = repositoryFileTree.getFile(); RepositoryDirectory repositoryDirectory1 = RepositoryDirectory.build( repositoryDirectory.getPath(), repositoryFile, isAdmin() ); repositoryDirectory.addChild( repositoryDirectory1 ); } }
public void populateFilesLazy( RepositoryDirectory repositoryDirectory, String filter ) { RepositoryRequest repositoryRequest = new RepositoryRequest(); repositoryRequest.setPath( repositoryDirectory.getPath() ); repositoryRequest.setDepth( 1 ); repositoryRequest.setShowHidden( true ); repositoryRequest.setTypes( RepositoryRequest.FILES_TYPE_FILTER.FILES ); repositoryRequest.setChildNodeFilter( filter ); RepositoryFileTree tree = getRepository().getUnderlyingRepository().getTree( repositoryRequest ); for ( RepositoryFileTree repositoryFileTree : tree.getChildren() ) { org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile = repositoryFileTree.getFile(); RepositoryFile repositoryFile1 = RepositoryFile.build( repositoryDirectory.getPath(), repositoryFile, isAdmin() ); repositoryDirectory.addChild( repositoryFile1 ); } }
@Override public RepositoryFileTreeDto marshal( final RepositoryFileTree v ) { RepositoryFileTreeDto treeDto = new RepositoryFileTreeDto(); RepositoryFileDto file = RepositoryFileAdapter.toFileDto( v, membersSet, exclude, includeAcls ); if ( file != null ) { treeDto.setFile( RepositoryFileAdapter.toFileDto( v, membersSet, exclude, includeAcls ) ); List<RepositoryFileTreeDto> children = null; if ( v.getChildren() != null ) { children = new ArrayList<RepositoryFileTreeDto>(); for ( RepositoryFileTree child : v.getChildren() ) { RepositoryFileTreeDto childTreeDto = marshal( child ); if ( childTreeDto != null ) { children.add( childTreeDto ); } } } treeDto.setChildren( children ); return treeDto; } else { return null; } }
assertNotNull( rootDir2.getChildren().get( 0 ).getChildren() ); assertEquals( rootDir, rootDir2 );