@Override public RepositoryObject getObjectInformation( ObjectId objectId, RepositoryObjectType objectType ) throws KettleException { try { String filename = calcDirectoryName( null ); if ( objectId.getId().startsWith( "/" ) ) { filename += objectId.getId().substring( 1 ); } else { filename += objectId.getId(); } FileObject fileObject = KettleVFS.getFileObject( filename ); if ( !fileObject.exists() ) { return null; } FileName fname = fileObject.getName(); String name = fname.getBaseName(); if ( !Utils.isEmpty( fname.getExtension() ) && name.length() > fname.getExtension().length() ) { name = name.substring( 0, name.length() - fname.getExtension().length() - 1 ); } String filePath = fileObject.getParent().getName().getPath(); final FileObject baseDirObject = KettleVFS.getFileObject( repositoryMeta.getBaseDirectory() ); final int baseDirObjectPathLength = baseDirObject.getName().getPath().length(); final String dirPath = baseDirObjectPathLength <= filePath.length() ? filePath.substring( baseDirObjectPathLength ) : "/"; RepositoryDirectoryInterface directory = loadRepositoryDirectoryTree().findDirectory( dirPath ); Date lastModified = new Date( fileObject.getContent().getLastModifiedTime() ); return new RepositoryObject( objectId, name, directory, "-", lastModified, objectType, "", false ); } catch ( Exception e ) { throw new KettleException( "Unable to get object information for object with id=" + objectId, e ); } }
repositoryElementInterfaces.add( repositoryDirectory ); } else { RepositoryObject repositoryObject = new RepositoryObject(); repositoryObject.setName( repositoryFile.getName() ); repositoryObject.setObjectId( () -> repositoryFile.getId().toString() );
@Override public List<RepositoryElementMetaInterface> getJobObjects( ObjectId id_directory, boolean includeDeleted ) throws KettleException { try { List<RepositoryElementMetaInterface> list = new ArrayList<RepositoryElementMetaInterface>(); RepositoryDirectoryInterface tree = loadRepositoryDirectoryTree(); RepositoryDirectoryInterface directory = tree.findDirectory( id_directory ); String folderName = calcDirectoryName( directory ); FileObject folder = KettleVFS.getFileObject( folderName ); for ( FileObject child : folder.getChildren() ) { if ( child.getType().equals( FileType.FILE ) ) { if ( !child.isHidden() || !repositoryMeta.isHidingHiddenFiles() ) { String name = child.getName().getBaseName(); if ( name.endsWith( EXT_JOB ) ) { String jobName = name.substring( 0, name.length() - 4 ); ObjectId id = new StringObjectId( calcObjectId( directory, jobName, EXT_JOB ) ); Date date = new Date( child.getContent().getLastModifiedTime() ); list.add( new RepositoryObject( id, jobName, directory, "-", date, RepositoryObjectType.JOB, "", false ) ); } } } } return list; } catch ( Exception e ) { throw new KettleException( "Unable to get list of jobs in folder with id : " + id_directory, e ); } }
@Override public List<RepositoryElementMetaInterface> getTransformationObjects( ObjectId idDirectory, boolean includeDeleted ) throws KettleException { try { List<RepositoryElementMetaInterface> list = new ArrayList<RepositoryElementMetaInterface>(); RepositoryDirectoryInterface tree = loadRepositoryDirectoryTree(); RepositoryDirectoryInterface directory = tree.findDirectory( idDirectory ); String folderName = calcDirectoryName( directory ); FileObject folder = KettleVFS.getFileObject( folderName ); for ( FileObject child : folder.getChildren() ) { if ( child.getType().equals( FileType.FILE ) ) { if ( !child.isHidden() || !repositoryMeta.isHidingHiddenFiles() ) { String name = child.getName().getBaseName(); if ( name.endsWith( EXT_TRANSFORMATION ) ) { String transName = name.substring( 0, name.length() - 4 ); ObjectId id = new StringObjectId( calcObjectId( directory, transName, EXT_TRANSFORMATION ) ); Date date = new Date( child.getContent().getLastModifiedTime() ); list.add( new RepositoryObject( id, transName, directory, "-", date, RepositoryObjectType.TRANSFORMATION, "", false ) ); } } } } return list; } catch ( Exception e ) { throw new KettleException( "Unable to get list of transformations in folder with id : " + idDirectory, e ); } }
RepositoryDirectoryInterface subdir2 = new RepositoryDirectory( subdir1, "subdir2" ); RepositoryElementMetaInterface trans1 = new RepositoryObject( null, "Trans1", subdir1, "user", null, RepositoryObjectType.TRANSFORMATION, "", false ); RepositoryElementMetaInterface trans2 = new RepositoryObject( null, "Trans2", subdir2, "user", null, RepositoryObjectType.TRANSFORMATION, "", false ); RepositoryElementMetaInterface job1 = new RepositoryObject( null, "Job1", subdir1, "user", null, RepositoryObjectType.JOB, "", false ); RepositoryElementMetaInterface job2 = new RepositoryObject( null, "Job2", subdir2, "user", null, RepositoryObjectType.JOB, "", false );
@Override public List<RepositoryElementMetaInterface> call() throws Exception { List<RepositoryElementMetaInterface> repositoryObjects = new ArrayList<RepositoryElementMetaInterface>(); ResultSet rs = database.openQuery( sql, directoryIdRow.getRowMeta(), directoryIdRow.getData() ); if ( rs != null ) { List<Object[]> rows = database.getRows( rs, -1, null ); if ( rs != null ) { database.closeQuery( rs ); } RowMetaInterface rowMeta = database.getReturnRowMeta(); for ( Object[] r : rows ) { ObjectId id = new LongObjectId( rowMeta.getInteger( r, 4 ) ); repositoryObjects.add( new RepositoryObject( id, rowMeta.getString( r, 0 ), repositoryDirectory, rowMeta .getString( r, 1 ), rowMeta.getDate( r, 2 ), objectType, rowMeta.getString( r, 3 ), false ) ); } } return repositoryObjects; } } );
boolean deleted = isDeleted( repositoryFile ); RepositoryDirectoryInterface directory = findDirectory( parentPath ); return new RepositoryObject( objectId, name, directory, ownerName, modifiedDate, objectType, description, deleted ); } catch ( Exception e ) {
@Override public void callExtensionPoint( LogChannelInterface logChannelInterface, Object o ) throws KettleException { FileDialogOperation fileDialogOperation = (FileDialogOperation) o; PropsUI propsUI = propsUISupplier.get(); String startingDir = null; if ( fileDialogOperation.getRepository() == null ) { String username = getRepository().getUserInfo() != null ? getRepository().getUserInfo().getLogin() : ""; String repoAndUser = getRepository().getName() + ":" + username; List<LastUsedFile> lastUsedFileList = propsUI.getLastUsedRepoFiles().getOrDefault( repoAndUser, Collections.emptyList() ); startingDir = getStartingDir( fileDialogOperation, lastUsedFileList ); } else { startingDir = fileDialogOperation.getStartDir(); } RepositoryOpenSaveDialog repositoryOpenSaveDialog = new RepositoryOpenSaveDialog( spoonSupplier.get().getShell(), WIDTH, HEIGHT ); repositoryOpenSaveDialog.open( fileDialogOperation.getRepository(), startingDir, fileDialogOperation.getCommand(), fileDialogOperation.getTitle(), fileDialogOperation.getFilter(), fileDialogOperation.getOrigin(), fileDialogOperation.getFilename(), fileDialogOperation.getFileType() ); if ( !Utils.isEmpty( repositoryOpenSaveDialog.getObjectName() ) ) { RepositoryObject repositoryObject = new RepositoryObject(); repositoryObject.setObjectId( repositoryOpenSaveDialog::getObjectId ); repositoryObject.setName( repositoryOpenSaveDialog.getObjectName() ); repositoryObject .setRepositoryDirectory( getRepository().findDirectory( repositoryOpenSaveDialog.getObjectDirectory() ) ); repositoryObject.setObjectType( repositoryOpenSaveDialog.getObjectType().equals( TRANSFORMATION ) ? RepositoryObjectType.TRANSFORMATION : RepositoryObjectType.JOB ); fileDialogOperation.setRepositoryObject( repositoryObject ); } }
referencingObjects.add( new RepositoryObject( jobMeta.getObjectId(), jobMeta.getName(), jobMeta .getRepositoryDirectory(), null, null, RepositoryObjectType.JOB, null, false ) );
RowMetaAndData row = databaseDelegate.getDatabase( objectId ); name = row.getString( KettleDatabaseRepository.FIELD_DATABASE_NAME, null ); return new RepositoryObject( objectId, name, null, null, null, objectType, null, false ); return new RepositoryObject( objectId, name, directory, modifiedUser, modifiedDate, objectType, description, isDeleted ); } catch ( Exception e ) {
referencingObjects.add( new RepositoryObject( transMeta.getObjectId(), transMeta.getName(), transMeta .getRepositoryDirectory(), null, null, RepositoryObjectType.TRANSFORMATION, null, false ) );