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 ); } }
if ( repObj.getFile().isFolder() ) { } else if ( !exporter.canExport( repObj.getFile() ) ) { files.add( repObj.getFile() ); .getFriendlyTypeName(), root.getFile().getPath() ) ); //$NON-NLS-1$ if ( monitor != null ) { monitor.subTask( "Loading " + group.size() + " " + exporter.getFriendlyTypeName() + " from " + root.getFile().getPath() ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } catch ( KettleException ex ) { log.logError( BaseMessages.getString( PKG, "PurRepositoryExporter.ERROR_EXPORT", exporter .getFriendlyTypeName(), root.getFile().getPath() ), ex ); //$NON-NLS-1$
/** * This is the only constructor that will populate the versioningEnabled and versionCommentEnabled flags. Other * constructors will leave the values as null. * * @param repoTree * @param repositoryDirectory * @param modifiedUser * @param objectType * @param description * @param lock * @param deleted */ public EERepositoryObject( RepositoryFileTree repoTree, RepositoryDirectoryInterface repositoryDirectory, String modifiedUser, RepositoryObjectType objectType, String description, RepositoryLock lock, boolean deleted ) { this( repoTree.getFile(), repositoryDirectory, modifiedUser, objectType, description, lock, deleted ); setVersioningEnabled( repoTree.getVersioningEnabled() ); setVersionCommentEnabled( repoTree.getVersionCommentEnabled() ); }
@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 RepositoryDirectoryInterface initRepositoryDirectoryTree( RepositoryFileTree repoTree ) throws KettleException { RepositoryFile rootFolder = repoTree.getFile(); RepositoryDirectory rootDir = new RepositoryDirectory(); rootDir.setObjectId( new StringObjectId( rootFolder.getId().toString() ) ); fillRepositoryDirectoryFromTree( rootDir, repoTree ); // Example: /etc RepositoryDirectory etcDir = rootDir.findDirectory( ClientRepositoryPaths.getEtcFolderPath() ); RepositoryDirectory newRoot = new RepositoryDirectory(); newRoot.setObjectId( rootDir.getObjectId() ); newRoot.setVisible( false ); for ( int i = 0; i < rootDir.getNrSubdirectories(); i++ ) { RepositoryDirectory childDir = rootDir.getSubdirectory( i ); // Don't show /etc boolean isEtcChild = childDir.equals( etcDir ); if ( isEtcChild ) { continue; } newRoot.addSubdirectory( childDir ); } return newRoot; }
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 ); } }
public static RepositoryFileDto toFileDto( final RepositoryFileTree repositoryFileTree, Set<String> memberSet, boolean exclude, boolean includeAcls ) { RepositoryFileDto repositoryFileDto = toFileDto( repositoryFileTree.getFile(), memberSet, exclude, includeAcls ); return repositoryFileDto; }