protected static List<RepositoryElementMetaInterface> loadRepositoryObjects( RepositoryDirectoryInterface dir, boolean getTransformations, boolean getJobs, Repository rep ) throws KettleDatabaseException { // Then show the transformations & jobs in that directory... List<RepositoryElementMetaInterface> repositoryObjects = new ArrayList<RepositoryElementMetaInterface>(); if ( dir.getRepositoryObjects() == null ) { try { dir.setRepositoryObjects( rep.getJobAndTransformationObjects( dir.getObjectId(), false ) ); } catch ( KettleException e ) { throw new KettleDatabaseException( e ); } } List<RepositoryObjectType> allowedTypes = new ArrayList<>( 2 ); if ( getTransformations ) { allowedTypes.add( RepositoryObjectType.TRANSFORMATION ); } if ( getJobs ) { allowedTypes.add( RepositoryObjectType.JOB ); } for ( RepositoryElementMetaInterface repoObject : dir.getRepositoryObjects() ) { if ( allowedTypes.contains( repoObject.getObjectType() ) ) { repositoryObjects.add( repoObject ); } } return repositoryObjects; }
private static void getAllTransformations( RepositoryDirectoryInterface repositoryObject, List<RepositoryElementMetaInterface> objectsTransformations ) throws KettleException { //test if has sub-directories if ( repositoryObject.getChildren() != null && repositoryObject.getChildren().size() > 0 ) { for ( RepositoryDirectoryInterface subDirectory : repositoryObject.getChildren() ) { getAllTransformations( subDirectory, objectsTransformations ); } } //getting all the transformations repositoryObject.getRepositoryObjects().stream() .filter( e -> RepositoryObjectType.TRANSFORMATION.equals( e.getObjectType() ) ) .forEach( objectsTransformations::add ); }
private List<RepositoryElementMetaInterface> getRepositoryObjects( RepositoryDirectoryInterface directory, String nameMask, String excludeNameMask ) throws KettleException { List<RepositoryElementMetaInterface> list = new ArrayList<RepositoryElementMetaInterface>(); if ( directory.getRepositoryObjects() != null ) { for ( RepositoryElementMetaInterface object : directory.getRepositoryObjects() ) { boolean add = false; if ( Utils.isEmpty( nameMask ) || object.getName().matches( nameMask ) ) { add = true; } if ( !Utils.isEmpty( excludeNameMask ) && object.getName().matches( excludeNameMask ) ) { add = false; } if ( add ) { list.add( object ); } } } if ( directory.getChildren() != null ) { for ( RepositoryDirectoryInterface subdir : directory.getChildren() ) { list.addAll( getRepositoryObjects( subdir, nameMask, excludeNameMask ) ); } } return list; }
private List<RepositoryElementMetaInterface> getRepositoryElements( RepositoryDirectoryInterface repositoryDirectoryInterface ) { List<RepositoryElementMetaInterface> elements = repositoryDirectoryInterface.getRepositoryObjects(); if ( elements == null ) { try { return getRepository().getJobAndTransformationObjects( repositoryDirectoryInterface.getObjectId(), false ); } catch ( KettleException ke ) { ke.printStackTrace(); } } else { return elements; } return Collections.emptyList(); }
private RepositoryDirectoryInterface copyFrom( RepositoryDirectoryInterface folders, RepositoryDirectoryInterface withFiles ) { if ( folders.getName().equals( withFiles.getName() ) ) { for ( RepositoryDirectoryInterface dir2 : withFiles.getChildren() ) { for ( RepositoryDirectoryInterface dir1 : folders.getChildren() ) { copyFrom( dir1, dir2 ); } } folders.setRepositoryObjects( withFiles.getRepositoryObjects() ); } return folders; }