public static RepositoryDirectory build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryDirectory repositoryDirectory = new RepositoryDirectory(); repositoryDirectory.setParent( parentPath ); repositoryDirectory.setName( repositoryFile.getName() ); repositoryDirectory.setPath( repositoryFile.getPath() ); repositoryDirectory.setObjectId( () -> (String) repositoryFile.getId() ); repositoryDirectory.setHidden( repositoryFile.isHidden() && !isAdmin ); repositoryDirectory.setDate( repositoryFile.getLastModifiedDate() != null ? repositoryFile.getLastModifiedDate() : repositoryFile.getCreatedDate() ); return repositoryDirectory; }
private String getMetaStoreFolders( StringBuilder builder, RepositoryFile folder, int level ) { String spaces = Const.rightPad( " ", level * 2 ); builder.append( spaces ); if ( folder.isFolder() ) { builder.append( "/" ); } builder.append( folder.getName() ).append( Const.CR ); for ( RepositoryFile file : getChildren( folder.getId() ) ) { getMetaStoreFolders( builder, file, level + 1 ); } return builder.toString(); }
@Override public Date getDeletedDate() { return file.getDeletedDate(); }
public EERepositoryObject( RepositoryFile file, RepositoryDirectoryInterface repositoryDirectory, String modifiedUser, RepositoryObjectType objectType, String description, RepositoryLock lock, boolean deleted ) { this( new StringObjectId( file.getId().toString() ), file.getTitle(), repositoryDirectory, modifiedUser, file .getLastModifiedDate(), objectType, description, lock, deleted ); }
public RepositoryLock getLock( final RepositoryFile file ) throws KettleException { if ( file.isLocked() ) { return new RepositoryLock( new StringObjectId( file.getId().toString() ), file.getLockMessage(), file .getLockOwner(), file.getLockOwner(), file.getLockDate() ); } else { return null; } }
public Builder( final RepositoryFile other ) { this( other.getName() ); synchronized ( other ) { this.id( other.getId() ).path( other.getPath() ).createdDate( other.getCreatedDate() ).creatorId( other.getCreatorId() ).fileSize( other.getFileSize() ).folder( other.isFolder() ).lastModificationDate( other.getLastModifiedDate() ).versioned( other.isVersioned() ).hidden( other.isHidden() ).schedulable( other.isSchedulable() ).versionId( other.getVersionId() ).locked( other.isLocked() ).lockDate( other.getLockDate() ).lockOwner( other.getLockOwner() ).lockMessage( other.getLockMessage() ).title( other.getTitle() ).description( other.getDescription() ).locale( other.getLocale() ).originalParentFolderPath( other.getOriginalParentFolderPath() ).deletedDate( other.getDeletedDate() ).localePropertiesMap( other.getLocalePropertiesMap() ).aclNode( other.isAclNode() ); } }
@Override public boolean matchesSafely( final RepositoryFile file ) { return ( expectedFile.getId() != null ? expectedFile.getId().equals( file.getId() ) : true ) && ( expectedFile.getName() != null ? expectedFile.getName().equals( file.getName() ) : true ) && ( expectedFile.getTitle() != null ? expectedFile.getTitle().equals( file.getTitle() ) : true ) && ( expectedFile.getPath() != null ? expectedFile.getPath().equals( file.getPath() ) : true ) && ( expectedFile.getCreatedDate() != null ? expectedFile.getCreatedDate().equals( file.getCreatedDate() ) : true ) && ( expectedFile.getLastModifiedDate() != null ? expectedFile.getLastModifiedDate().equals( file.getLastModifiedDate() ) : true ) && ( expectedFile.getVersionId() != null ? expectedFile.getVersionId().equals( file.getVersionId() ) : true ) && ( expectedFile.getDeletedDate() != null ? expectedFile.getDeletedDate().equals( file.getDeletedDate() ) : true ); }
repositoryFileAcl = pur.getAcl( repositoryFile.getId() ); String parentPath = getParentPath( repositoryFile.getPath() ); String name = repositoryFile.getTitle(); String description = repositoryFile.getDescription(); Date modifiedDate = repositoryFile.getLastModifiedDate();
@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 LegacyRepositoryFile convert( RepositoryFile file, RepositoryFileAcl acl ) { LegacyRepositoryFile legacy = new LegacyRepositoryFile( file.getName(), file.getPath(), file.isFolder() ); legacy.setId( file.getId() ); if ( file.getLastModifiedDate() != null ) { legacy.setLastModified( file.getLastModifiedDate().getTime() );
public static RepositoryFile build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryFile repositoryFile1 = new RepositoryFile(); repositoryFile1.setObjectId( () -> (String) repositoryFile.getId() ); repositoryFile1.setName( stripExtension( repositoryFile.getName() ) ); repositoryFile1.setType( getType( repositoryFile.getName() ) ); repositoryFile1.setExtension( ".ktr" ); repositoryFile1.setDate( repositoryFile.getLastModifiedDate() ); repositoryFile1.setPath( parentPath ); repositoryFile1.setHidden( repositoryFile.isHidden() && !isAdmin ); return repositoryFile1; }
public DatabaseMeta assemble( RepositoryFile file, NodeRepositoryFileData data, VersionSummary version ) throws KettleException { DatabaseMeta databaseMeta = (DatabaseMeta) dataNodeToElement( data.getNode() ); String fileName = file.getName(); if ( fileName.endsWith( ".kdb" ) ) { fileName = fileName.substring( 0, fileName.length() - 4 ); } databaseMeta.setChangedDate( file.getLastModifiedDate() ); databaseMeta.setName( fileName ); databaseMeta.setDisplayName( file.getTitle() ); databaseMeta.setObjectId( new StringObjectId( file.getId().toString() ) ); databaseMeta.setObjectRevision( repo.createObjectRevision( version ) ); databaseMeta.clearChanged(); return databaseMeta; } }
private JobMeta buildJobMeta( final RepositoryFile file, final RepositoryDirectoryInterface parentDir, final NodeRepositoryFileData data, final ObjectRevision revision ) throws KettleException { JobMeta jobMeta = new JobMeta(); jobMeta.setName( file.getTitle() ); jobMeta.setFilename( file.getName() ); jobMeta.setDescription( file.getDescription() ); jobMeta.setObjectId( new StringObjectId( file.getId().toString() ) ); jobMeta.setObjectRevision( revision ); jobMeta.setRepository( this ); jobMeta.setRepositoryDirectory( parentDir ); jobMeta.setMetaStore( getMetaStore() ); readJobMetaSharedObjects( jobMeta ); // This should read from the local cache jobDelegate.dataNodeToElement( data.getNode(), jobMeta ); jobMeta.clearChanged(); return jobMeta; }
@Override public RepositoryDirectory findDirectory( ObjectId id_directory ) { RepositoryFile file = repository.getFileById( id_directory.getId() ); if ( file == null || !file.isFolder() ) { return null; } if ( isRoot() && RepositoryDirectory.DIRECTORY_SEPARATOR.equals( file.getPath() ) ) { return this; } // Verifies if this is the parent directory of file and if so passes this as parent argument String parentPath = getParentPath( file.getPath() ); if ( self.getPath().endsWith( RepositoryDirectory.DIRECTORY_SEPARATOR ) ) { if ( parentPath.equals( self.getPath().substring( 0, self.getPath().length() - 1 ) ) ) { return new LazyUnifiedRepositoryDirectory( file, this, repository, registry, showHidden ); } } else { if ( parentPath.equals( self.getPath() ) ) { return new LazyUnifiedRepositoryDirectory( file, this, repository, registry, showHidden ); } } return new LazyUnifiedRepositoryDirectory( file, findDirectory( parentPath ), repository, registry, showHidden ); }
@Override public RepositoryFileTree getTree( final String path, final int depth, final String filter, final boolean showHidden ) { FileRecord r = root.getFileRecord( path ); RepositoryFile rootFile = r.getFile(); if ( ( !showHidden && rootFile.isHidden() ) || rootFile.isAclNode() ) { return null; } List<RepositoryFileTree> children; if ( depth != 0 ) { children = new ArrayList<RepositoryFileTree>(); if ( rootFile.isFolder() ) { List<RepositoryFile> childrenTmp = getChildren( rootFile.getId(), filter ); for ( RepositoryFile child : childrenTmp ) { RepositoryFileTree repositoryFileTree = getTree( child.getPath(), depth - 1, filter, showHidden ); if ( repositoryFileTree != null ) { children.add( repositoryFileTree ); } } } Collections.sort( children ); } else { children = null; } return new RepositoryFileTree( rootFile, children ); }
String encodedFileName = JcrStringHelper.fileNameEncode( file.getName() ); Node parentFolderNode; if ( parentFolderId != null ) { fileNode.setProperty( pentahoJcrConstants.getPHO_CONTENTTYPE(), transformer.getContentType() ); fileNode.setProperty( pentahoJcrConstants.getPHO_LASTMODIFIED(), Calendar.getInstance() ); fileNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), file.isHidden() ); fileNode.setProperty( pentahoJcrConstants.getPHO_FILESIZE(), content.getDataSize() ); fileNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), file.isAclNode() ); if ( file.getLocalePropertiesMap() != null && !file.getLocalePropertiesMap().isEmpty() ) { Node localeNodes = fileNode.addNode( pentahoJcrConstants.getPHO_LOCALES(), pentahoJcrConstants.getPHO_NT_LOCALE() ); setLocalePropertiesMap( session, pentahoJcrConstants, localeNodes, file.getLocalePropertiesMap() ); setMetadataItemForFile( session, PentahoJcrConstants.PHO_CONTENTCREATOR, file.getCreatorId(), metaNode ); setMetadataItemForFile( session, RepositoryFile.SCHEDULABLE_KEY, Boolean.toString( file.isSchedulable() ), metaNode ); fileNode.addMixin( pentahoJcrConstants.getMIX_LOCKABLE() ); fileNode.addMixin( pentahoJcrConstants.getMIX_REFERENCEABLE() ); if ( file.isVersioned() ) {
@Override public ObjectId getId() { return new StringObjectId( file.getId().toString() ); }
final ITransformer<IRepositoryFileData> transformer ) throws RepositoryException { Node fileNode = session.getNodeByIdentifier( file.getId().toString() ); fileNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), file.isHidden() ); fileNode.setProperty( pentahoJcrConstants.getPHO_FILESIZE(), content.getDataSize() ); fileNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), file.isAclNode() ); if ( file.getLocalePropertiesMap() != null && !file.getLocalePropertiesMap().isEmpty() ) { Node localePropertiesMapNode = null; if ( !fileNode.hasNode( pentahoJcrConstants.getPHO_LOCALES() ) ) { localePropertiesMapNode = fileNode.getNode( pentahoJcrConstants.getPHO_LOCALES() ); setLocalePropertiesMap( session, pentahoJcrConstants, localePropertiesMapNode, file.getLocalePropertiesMap() ); metadataNode = fileNode.getNode( pentahoJcrConstants.getPHO_METADATA() ); if ( file.getCreatorId() != null ) { setMetadataItemForFile( session, PentahoJcrConstants.PHO_CONTENTCREATOR, file.getCreatorId(), metadataNode ); setMetadataItemForFile( session, RepositoryFile.SCHEDULABLE_KEY, Boolean.toString( file.isSchedulable() ), metadataNode );
@Override public RepositoryFile updateFolder( RepositoryFile folder, String versionMessage ) { Validate.isTrue( folder.isFolder() ); if ( !hasAccess( folder.getId(), EnumSet.of( WRITE ) ) ) { throw new AccessDeniedException( "access denied" ); } FileRecord fileRecord = idManager.getFileById( folder.getId() ); fileRecord.setFile( new RepositoryFile.Builder( folder ).hidden( folder.isHidden() ).title( findTitle( folder ) ) .description( findDesc( folder ) ).aclNode( folder.isAclNode() ).build() ); if ( folder.isVersioned() ) { versionManager.createVersion( fileRecord.getFile().getId(), currentUserProvider.getUser(), versionMessage, new Date() ); } return fileRecord.getFile(); }