Class DataSetRegistrationTransaction<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>

  • All Implemented Interfaces:
    IDataSetRegistrationTransactionV2, ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext.IHolder, ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IDataSetInApplicationServerRegistrator<T>, ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IRollbackDelegate<T>

    public class DataSetRegistrationTransaction<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
    extends java.lang.Object
    implements IDataSetRegistrationTransactionV2, ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IRollbackDelegate<T>, ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IDataSetInApplicationServerRegistrator<T>, ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext.IHolder
    The implementation of a transaction. This class is designed to be used in one thread.

    A transaction tracks commands that are invoked on it so they can be reverted (rolledback) if necessary.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static org.apache.log4j.Logger operationLog  
      static java.lang.String SUCCESS_MESSAGE  
    • Constructor Summary

      Constructors 
      Constructor Description
      DataSetRegistrationTransaction​(java.io.File rollBackStackParentFolder, java.io.File workingDirectory, java.io.File stagingDirectory, ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> registrationService, ch.systemsx.cisd.etlserver.registrator.v2.IDataSetRegistrationDetailsFactory<T> registrationDetailsFactory, java.lang.String userSessionToken)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void assignRoleToSpace​(ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode role, ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable space, java.util.List<java.lang.String> userIds, java.util.List<java.lang.String> groupCodes)
      Give users and/or groups access privileges to a space.
      void close()  
      boolean commit()
      Commit the transaction.
      IDataSet createNewDataSet()
      Create a new data set for registration in openBIS.
      IDataSet createNewDataSet​(ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails<T> registrationDetails)  
      IDataSet createNewDataSet​(ch.systemsx.cisd.etlserver.registrator.v2.IDataSetRegistrationDetailsFactory<T> factory, java.lang.String dataSetType)  
      IDataSet createNewDataSet​(java.lang.String dataSetType)
      Create a new data set with the specified code.
      IDataSet createNewDataSet​(java.lang.String dataSetType, ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind datasetKindOrNull)  
      IDataSet createNewDataSet​(java.lang.String dataSetType, java.lang.String dataSetCode)
      Create a new data set with the specified type and code.
      IDataSet createNewDataSet​(java.lang.String dataSetType, java.lang.String dataSetCode, ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind datasetKindOrNull)  
      java.lang.String createNewDirectory​(IDataSet dst, java.lang.String dirName)
      Create a new directory and return the path.
      IExperiment createNewExperiment​(java.lang.String experimentIdentifierString, java.lang.String experimentTypeCode)
      Create a new experiment to register with the openBIS AS.
      java.lang.String createNewFile​(IDataSet dst, java.lang.String fileName)
      Create a new empty file and return the path.
      java.lang.String createNewFile​(IDataSet dst, java.lang.String dstInDataset, java.lang.String fileName)
      Create a new empty file and return the path.
      java.lang.String createNewLink​(IDataSet dst, java.lang.String dstInDataset, java.lang.String linkName, java.lang.String linkTarget)
      Create a new symbolic link and return the path.
      IMaterial createNewMaterial​(java.lang.String materialCode, java.lang.String materialType)
      Create a new material to register with the openBIS AS.
      IMetaproject createNewMetaproject​(java.lang.String name, java.lang.String description)
      Creates the new metaproject for the current user.
      IMetaproject createNewMetaproject​(java.lang.String name, java.lang.String description, java.lang.String ownerId)
      Creates the new metaproject for the specified user.
      IProject createNewProject​(java.lang.String projectIdentifier)
      Create a new project to register with the openBIS AS.
      ISample createNewProjectSampleWithGeneratedCode​(java.lang.String projectIdentifier, java.lang.String sampleTypeCode)
      Create a new project sample to register with the openBIS AS.
      ISample createNewSample​(java.lang.String sampleIdentifierString, java.lang.String sampleTypeCode)
      Create a new sample to register with the openBIS AS.
      ISample createNewSampleWithGeneratedCode​(java.lang.String spaceCode, java.lang.String sampleTypeCode)
      Create a new sample to register with the openBIS AS.
      ISpace createNewSpace​(java.lang.String spaceCode, java.lang.String spaceAdminUserIdOrNull)
      Create a new space to register with the openBIS AS.
      IVocabularyTerm createNewVocabularyTerm()
      Creates a new vocabulary term, which has to be assigned to a IVocabulary.
      void deleteFile​(java.lang.String src)  
      ch.systemsx.cisd.openbis.generic.shared.basic.EntityOperationsState didEntityOperationsSucceeded​(ch.systemsx.cisd.openbis.generic.shared.basic.TechId registrationId)  
      void didRollbackStorageAlgorithmRunner​(ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner<T> algorithm, java.lang.Throwable ex, ch.systemsx.cisd.etlserver.registrator.v2.IDataSetOnErrorActionDecision.ErrorType errorType)
      Delegate method called by the DataSetStorageAlgorithmRunner.
      static ch.systemsx.cisd.etlserver.registrator.api.impl.RollbackStack[] findRollbackStacks​(java.io.File rollBackStackParentFolder)  
      java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable experiment, java.lang.String fileName, java.lang.Integer versionOrNull)
      Returns an experiment attachment content.
      java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable project, java.lang.String fileName, java.lang.Integer versionOrNull)
      Returns a project attachment content.
      java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable sample, java.lang.String fileName, java.lang.Integer versionOrNull)
      Returns a sample attachment content.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.authorization.IAuthorizationService getAuthorizationService()  
      net.lemnik.eodsql.DynamicTransactionQuery getDatabaseQuery​(java.lang.String dataSourceName)
      Gets a database query object for the data source with the specified name.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IDataSetImmutable getDataSet​(java.lang.String dataSetCode)
      Get a data set from the openBIS AS.
      IDataSetUpdatable getDataSetForUpdate​(java.lang.String dataSetCode)
      Get a data set from the openBIS AS for the purpose of modifying it.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable getExperiment​(java.lang.String experimentIdentifierString)
      Get an experiment from the openBIS AS.
      IExperimentUpdatable getExperimentForUpdate​(java.lang.String experimentIdentifierString)
      Get an experiment from the openBIS AS for the purpose of modifying it.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExternalDataManagementSystemImmutable getExternalDataManagementSystem​(java.lang.String externalDataManagementSystemCode)
      Get an external data management system from the openBIS AS.
      ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState getGlobalState()  
      java.io.File getIncoming()
      Returns the file representing the logical incoming file.
      ch.systemsx.cisd.etlserver.registrator.DataSetFile getIncomingDataSetFile()  
      IDSSRegistrationLogger getLogger()
      Returns the logger object that logs messages to openbis operation log and data store server registration logs.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IMaterialImmutable getMaterial​(java.lang.String identifier)
      Get a material from the openBIS AS.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IMaterialImmutable getMaterial​(java.lang.String materialCode, java.lang.String materialType)
      Get a material from the openBIS AS.
      IMaterial getMaterialForUpdate​(java.lang.String identifier)
      Get a material from the openBIS AS for the purpose of modifying it.
      IMaterial getMaterialForUpdate​(java.lang.String materialCode, java.lang.String materialType)
      Get a material from the openBIS AS for the purpose of modifying it.
      IMetaproject getMetaproject​(java.lang.String name)
      Only allowed when the user is available.
      IMetaproject getMetaproject​(java.lang.String name, java.lang.String ownerId)
      Only allowed when the user is not available.
      java.lang.String getOpenBisServiceSessionToken()
      Returns the currently used session token by the openBIS service
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable getProject​(java.lang.String projectIdentifier)
      Get a project from the openBIS AS.
      IProject getProjectForUpdate​(java.lang.String projectIdentifier)
      Get an project from the openBIS AS for the purpose of modifying it.
      ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext getRegistrationContext()
      Return a registration context object which can be used to store information that needs to be accessed through the registration process.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable getSample​(java.lang.String sampleIdentifierString)
      Get a sample from the openBIS AS.
      ISample getSampleForUpdate​(java.lang.String sampleIdentifierString)
      Get a sample from the openBIS AS for the purpose of modifying it.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchService()
      Retrieve the search service for this transaction.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchServiceFilteredForUser​(java.lang.String userId)
      Retrieve the search service for this transaction.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchServiceUnfiltered()
      Retrieve the search service for this transaction.
      java.util.Map<java.lang.String,​java.lang.String> getServerInformation()
      Returns information about the openBIS server.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable getSpace​(java.lang.String spaceCode)
      Get a space from the openBIS AS.
      ch.systemsx.cisd.etlserver.registrator.recovery.IDataSetStorageRecoveryManager getStorageRecoveryManager()  
      java.lang.String getUserId()
      Get the id of the user on whose behalf this registration transaction is performed.
      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IVocabularyImmutable getVocabulary​(java.lang.String code)
      Get the read-only vocabulary with given code
      IVocabulary getVocabularyForUpdate​(java.lang.String code)
      Get the vocabulary with given code
      boolean isCommitted()  
      boolean isCommittedOrRolledback()  
      boolean isRecoveryPending()  
      boolean isRolledback()  
      java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable experiment)
      Returns a list of experiment attachments with all versions.
      java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable project)
      Returns a list of project attachments with all versions.
      java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable sample)
      Returns a list of sample attachments with all versions.
      void logInfo​(java.lang.Object message)
      Write something to the operation log.
      IDataSetUpdatable makeDataSetMutable​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IDataSetImmutable dataSet)
      Given an immutable data set, make it mutable.
      IExperimentUpdatable makeExperimentMutable​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable experiment)
      Given an immutable experiment, make it mutable.
      IMaterial makeMaterialMutable​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IMaterialImmutable material)
      Given an immutable material, make it mutable.
      IProject makeProjectMutable​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable project)
      Given an immutable project, make it mutable.
      ISample makeSampleMutable​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable sample)
      Given an immutable sample, make it mutable.
      void markReadyForRecovery​(ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner<T> algorithm, java.lang.Throwable ex)  
      java.lang.String moveFile​(java.lang.String src, IDataSet dst)
      Move a file from into the root of a data set.
      java.lang.String moveFile​(java.lang.String src, IDataSet dst, java.lang.String dstInDataset)
      Move a file to a specified location in a data set.
      ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationResult registerDataSetsInApplicationServer​(ch.systemsx.cisd.openbis.generic.shared.basic.TechId registrationId, java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetRegistrationInformation<T>> dataSetRegistrations)
      Delegate method called by the DataSetStorageAlgorithmRunner.
      void revokeRoleFromSpace​(ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode role, ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable space, java.util.List<java.lang.String> userIds, java.util.List<java.lang.String> groupCodes)
      Take away users and/or groups access privileges to a space.
      void rollback()
      Rollback any commands that have been executed.
      static void rollbackDeadTransactions​(java.io.File rollBackStackParentFolder)
      Check if there are any uncompleted transactions and roll them back.
      void setUserId​(java.lang.String userIdOrNull)
      Set the id of the user on whose behalf this registration transaction is performed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • operationLog

        protected static final org.apache.log4j.Logger operationLog
    • Constructor Detail

      • DataSetRegistrationTransaction

        public DataSetRegistrationTransaction​(java.io.File rollBackStackParentFolder,
                                              java.io.File workingDirectory,
                                              java.io.File stagingDirectory,
                                              ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> registrationService,
                                              ch.systemsx.cisd.etlserver.registrator.v2.IDataSetRegistrationDetailsFactory<T> registrationDetailsFactory,
                                              java.lang.String userSessionToken)
    • Method Detail

      • findRollbackStacks

        public static ch.systemsx.cisd.etlserver.registrator.api.impl.RollbackStack[] findRollbackStacks​(java.io.File rollBackStackParentFolder)
      • rollbackDeadTransactions

        public static void rollbackDeadTransactions​(java.io.File rollBackStackParentFolder)
        Check if there are any uncompleted transactions and roll them back. To be called during startup of a thread.
      • setUserId

        public void setUserId​(java.lang.String userIdOrNull)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Set the id of the user on whose behalf this registration transaction is performed.
        Specified by:
        setUserId in interface IDataSetRegistrationTransactionV2
        Parameters:
        userIdOrNull - The id of a user or null if this transaction should be performed as the system (etlserver).
      • createNewDataSet

        public IDataSet createNewDataSet​(ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails<T> registrationDetails)
      • createNewDataSet

        public IDataSet createNewDataSet​(ch.systemsx.cisd.etlserver.registrator.v2.IDataSetRegistrationDetailsFactory<T> factory,
                                         java.lang.String dataSetType)
      • getDataSet

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IDataSetImmutable getDataSet​(java.lang.String dataSetCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a data set from the openBIS AS. Returns null if the data set does not exist.
        Specified by:
        getDataSet in interface IDataSetRegistrationTransactionV2
        Returns:
        A data set or null
      • getSample

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable getSample​(java.lang.String sampleIdentifierString)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a sample from the openBIS AS. Returns null if the sample does not exist.
        Specified by:
        getSample in interface IDataSetRegistrationTransactionV2
        Returns:
        A sample or null
      • createNewSample

        public ISample createNewSample​(java.lang.String sampleIdentifierString,
                                       java.lang.String sampleTypeCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new sample to register with the openBIS AS. The sample will have a permId.
        Specified by:
        createNewSample in interface IDataSetRegistrationTransactionV2
        Parameters:
        sampleIdentifierString - The identifier for the new sample
        sampleTypeCode - The code of the type for the new sample
      • createNewSampleWithGeneratedCode

        public ISample createNewSampleWithGeneratedCode​(java.lang.String spaceCode,
                                                        java.lang.String sampleTypeCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new sample to register with the openBIS AS. The sample will have a permId and automatically created identifier.
        Specified by:
        createNewSampleWithGeneratedCode in interface IDataSetRegistrationTransactionV2
        Parameters:
        spaceCode - The space in which to create the sample identifier for the new sample
        sampleTypeCode - The code of the type for the new sample
      • createNewProjectSampleWithGeneratedCode

        public ISample createNewProjectSampleWithGeneratedCode​(java.lang.String projectIdentifier,
                                                               java.lang.String sampleTypeCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new project sample to register with the openBIS AS. The sample will have a permId and automatically created identifier.
        Specified by:
        createNewProjectSampleWithGeneratedCode in interface IDataSetRegistrationTransactionV2
        Parameters:
        projectIdentifier - The project in which to create the sample identifier for the new sample
        sampleTypeCode - The code of the type for the new sample
      • createNewExperiment

        public IExperiment createNewExperiment​(java.lang.String experimentIdentifierString,
                                               java.lang.String experimentTypeCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new experiment to register with the openBIS AS. The experiment will have a permId.
        Specified by:
        createNewExperiment in interface IDataSetRegistrationTransactionV2
        Parameters:
        experimentIdentifierString - The identifier for the new experiment
        experimentTypeCode - The code of the type for the new experiment
      • getProject

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable getProject​(java.lang.String projectIdentifier)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a project from the openBIS AS. Returns null if the project does not exist.
        Specified by:
        getProject in interface IDataSetRegistrationTransactionV2
        Returns:
        A project or null
      • createNewSpace

        public ISpace createNewSpace​(java.lang.String spaceCode,
                                     java.lang.String spaceAdminUserIdOrNull)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new space to register with the openBIS AS.
        Specified by:
        createNewSpace in interface IDataSetRegistrationTransactionV2
        Parameters:
        spaceCode - the code of the space
        spaceAdminUserIdOrNull - the user id of the person, who will receive space admin priviliges.
      • getSpace

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable getSpace​(java.lang.String spaceCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a space from the openBIS AS. Returns null if the space does not exist.
        Specified by:
        getSpace in interface IDataSetRegistrationTransactionV2
        Returns:
        A space or null
      • getMaterial

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IMaterialImmutable getMaterial​(java.lang.String materialCode,
                                                                                                          java.lang.String materialType)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a material from the openBIS AS. Returns null if the material does not exist.
        Specified by:
        getMaterial in interface IDataSetRegistrationTransactionV2
        Returns:
        A material or null
      • getMaterial

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IMaterialImmutable getMaterial​(java.lang.String identifier)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get a material from the openBIS AS. Returns null if the material does not exist.
        Specified by:
        getMaterial in interface IDataSetRegistrationTransactionV2
        Returns:
        A material or null
      • getExternalDataManagementSystem

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExternalDataManagementSystemImmutable getExternalDataManagementSystem​(java.lang.String externalDataManagementSystemCode)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Get an external data management system from the openBIS AS. Returns null if the object does not exist.
        Specified by:
        getExternalDataManagementSystem in interface IDataSetRegistrationTransactionV2
        Returns:
        external data management system or null
      • moveFile

        public java.lang.String moveFile​(java.lang.String src,
                                         IDataSet dst,
                                         java.lang.String dstInDataset)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Move a file to a specified location in a data set. Any necessary intermediate folders are automatically created.
        Specified by:
        moveFile in interface IDataSetRegistrationTransactionV2
        Parameters:
        src - The path of the file to move.
        dst - The data set to add the file to.
        dstInDataset - The path of the file in the data set
        Returns:
        The absolute path after the move.
      • createNewDirectory

        public java.lang.String createNewDirectory​(IDataSet dst,
                                                   java.lang.String dirName)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new directory and return the path.
        Specified by:
        createNewDirectory in interface IDataSetRegistrationTransactionV2
        Parameters:
        dst - The data set to add the file to.
        dirName - The name of the new file to create. (Can be a simple file or directory.)
        Returns:
        The absolute path of the new file.
      • createNewFile

        public java.lang.String createNewFile​(IDataSet dst,
                                              java.lang.String fileName)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new empty file and return the path.
        Specified by:
        createNewFile in interface IDataSetRegistrationTransactionV2
        Parameters:
        dst - The data set to add the file to.
        fileName - The name of the new file to create. (Can be a simple file or directory.)
        Returns:
        The absolute path of the new file.
      • createNewFile

        public java.lang.String createNewFile​(IDataSet dst,
                                              java.lang.String dstInDataset,
                                              java.lang.String fileName)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new empty file and return the path.
        Specified by:
        createNewFile in interface IDataSetRegistrationTransactionV2
        Parameters:
        dst - The data set to add the file to.
        dstInDataset - The path of the file in the data set
        fileName - The name of the new file to create. (Can be a simple file or directory.)
        Returns:
        The absolute path of the new file.
      • createNewLink

        public java.lang.String createNewLink​(IDataSet dst,
                                              java.lang.String dstInDataset,
                                              java.lang.String linkName,
                                              java.lang.String linkTarget)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Create a new symbolic link and return the path.
        Specified by:
        createNewLink in interface IDataSetRegistrationTransactionV2
        Parameters:
        dst - The data set to add the file to.
        dstInDataset - The path of the file in the data set
        linkName - The name of the new link to create
        linkTarget - The path of file/directory the new link should point to
        Returns:
        The absolute path of the new link.
      • deleteFile

        public void deleteFile​(java.lang.String src)
      • getRegistrationContext

        public ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext getRegistrationContext()
        Description copied from interface: IDataSetRegistrationTransactionV2
        Return a registration context object which can be used to store information that needs to be accessed through the registration process.

        It is important to use this registration context, and not global variables, for communication between code in different parts of the registration process. This is because the registration process is not guaranteed to run in a single process.

        Specified by:
        getRegistrationContext in interface ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext.IHolder
        Specified by:
        getRegistrationContext in interface IDataSetRegistrationTransactionV2
        Returns:
        The context, a hash-map-like object.
      • commit

        public boolean commit()
        Commit the transaction. Does not throw exceptions if the commit fails on some datasets!
        Returns:
        true if any datasets have been commited, false otherwise.
      • rollback

        public void rollback()
        Rollback any commands that have been executed. Rollback is done in the reverse order of execution.
      • didRollbackStorageAlgorithmRunner

        public void didRollbackStorageAlgorithmRunner​(ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner<T> algorithm,
                                                      java.lang.Throwable ex,
                                                      ch.systemsx.cisd.etlserver.registrator.v2.IDataSetOnErrorActionDecision.ErrorType errorType)
        Delegate method called by the DataSetStorageAlgorithmRunner.
        Specified by:
        didRollbackStorageAlgorithmRunner in interface ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IRollbackDelegate<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
      • markReadyForRecovery

        public void markReadyForRecovery​(ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner<T> algorithm,
                                         java.lang.Throwable ex)
        Specified by:
        markReadyForRecovery in interface ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IRollbackDelegate<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
      • registerDataSetsInApplicationServer

        public ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationResult registerDataSetsInApplicationServer​(ch.systemsx.cisd.openbis.generic.shared.basic.TechId registrationId,
                                                                                                                           java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetRegistrationInformation<T>> dataSetRegistrations)
                                                                                                                    throws java.lang.Throwable
        Delegate method called by the DataSetStorageAlgorithmRunner. This implementation asks the DataSetRegistrationService to register not just the data sets, but perform any creation or updates of Experiments and Samples as well.
        Specified by:
        registerDataSetsInApplicationServer in interface ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IDataSetInApplicationServerRegistrator<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
        Throws:
        java.lang.Throwable
      • didEntityOperationsSucceeded

        public ch.systemsx.cisd.openbis.generic.shared.basic.EntityOperationsState didEntityOperationsSucceeded​(ch.systemsx.cisd.openbis.generic.shared.basic.TechId registrationId)
        Specified by:
        didEntityOperationsSucceeded in interface ch.systemsx.cisd.etlserver.registrator.v2.DataSetStorageAlgorithmRunner.IDataSetInApplicationServerRegistrator<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
      • isCommittedOrRolledback

        public boolean isCommittedOrRolledback()
      • isCommitted

        public boolean isCommitted()
      • isRolledback

        public boolean isRolledback()
      • isRecoveryPending

        public boolean isRecoveryPending()
      • logInfo

        public void logInfo​(java.lang.Object message)
        Write something to the operation log.
      • getSearchService

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchService()
        Description copied from interface: IDataSetRegistrationTransactionV2
        Retrieve the search service for this transaction. If the user is available for this transaction, then the search service results will be filtered for this user.
        Specified by:
        getSearchService in interface IDataSetRegistrationTransactionV2
        Returns:
        The search service for this transaction.
      • getSearchServiceUnfiltered

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchServiceUnfiltered()
        Description copied from interface: IDataSetRegistrationTransactionV2
        Retrieve the search service for this transaction. It returns the results unfiltered by the user, even if the user is available.
        Specified by:
        getSearchServiceUnfiltered in interface IDataSetRegistrationTransactionV2
        Returns:
        The search service for this transaction.
      • getSearchServiceFilteredForUser

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISearchService getSearchServiceFilteredForUser​(java.lang.String userId)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Retrieve the search service for this transaction. The search service results will be filtered for the specified user.
        Specified by:
        getSearchServiceFilteredForUser in interface IDataSetRegistrationTransactionV2
        Returns:
        The search service for this transaction.
      • getAuthorizationService

        public ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.authorization.IAuthorizationService getAuthorizationService()
        Specified by:
        getAuthorizationService in interface IDataSetRegistrationTransactionV2
        Returns:
        A service which can be used to get authorization information about a user.
      • getDatabaseQuery

        public net.lemnik.eodsql.DynamicTransactionQuery getDatabaseQuery​(java.lang.String dataSourceName)
                                                                   throws java.lang.IllegalArgumentException
        Description copied from interface: IDataSetRegistrationTransactionV2
        Gets a database query object for the data source with the specified name.

        After the rest of the transaction is committed, the queries are committed. Failures in these secondary queries are not fatal, but they are caught and the clients of the transaction are notified.

        Specified by:
        getDatabaseQuery in interface IDataSetRegistrationTransactionV2
        Parameters:
        dataSourceName - The name of the data source to query against, as declared in the service.properties file.
        Returns:
        The query.
        Throws:
        java.lang.IllegalArgumentException
      • getStorageRecoveryManager

        public ch.systemsx.cisd.etlserver.registrator.recovery.IDataSetStorageRecoveryManager getStorageRecoveryManager()
      • getIncomingDataSetFile

        public ch.systemsx.cisd.etlserver.registrator.DataSetFile getIncomingDataSetFile()
      • getGlobalState

        public ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState getGlobalState()
        Specified by:
        getGlobalState in interface IDataSetRegistrationTransactionV2
        Returns:
        Global state for this dropbox, including configuration properties specified by the user.
      • assignRoleToSpace

        public void assignRoleToSpace​(ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode role,
                                      ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable space,
                                      java.util.List<java.lang.String> userIds,
                                      java.util.List<java.lang.String> groupCodes)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Give users and/or groups access privileges to a space.
        Specified by:
        assignRoleToSpace in interface IDataSetRegistrationTransactionV2
      • revokeRoleFromSpace

        public void revokeRoleFromSpace​(ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy.RoleCode role,
                                        ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable space,
                                        java.util.List<java.lang.String> userIds,
                                        java.util.List<java.lang.String> groupCodes)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Take away users and/or groups access privileges to a space.
        Specified by:
        revokeRoleFromSpace in interface IDataSetRegistrationTransactionV2
      • listAttachments

        public java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable project)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns a list of project attachments with all versions. Returns null if the project does not have any attachments.
        Specified by:
        listAttachments in interface IDataSetRegistrationTransactionV2
      • listAttachments

        public java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable experiment)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns a list of experiment attachments with all versions. Returns null if the experiment does not have any attachments.
        Specified by:
        listAttachments in interface IDataSetRegistrationTransactionV2
      • listAttachments

        public java.util.List<ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IAttachmentImmutable> listAttachments​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable sample)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns a list of sample attachments with all versions. Returns null if the sample does not have any attachments.
        Specified by:
        listAttachments in interface IDataSetRegistrationTransactionV2
      • getAttachmentContent

        public java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IProjectImmutable project,
                                                        java.lang.String fileName,
                                                        java.lang.Integer versionOrNull)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns a project attachment content. If the version is not specified then the latest version of the attachment is returned. Returns null if the attachment does not exist.
        Specified by:
        getAttachmentContent in interface IDataSetRegistrationTransactionV2
      • getAttachmentContent

        public java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.IExperimentImmutable experiment,
                                                        java.lang.String fileName,
                                                        java.lang.Integer versionOrNull)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns an experiment attachment content. If the version is not specified then the latest version of the attachment is returned. Returns null if the attachment does not exist.
        Specified by:
        getAttachmentContent in interface IDataSetRegistrationTransactionV2
      • getAttachmentContent

        public java.io.InputStream getAttachmentContent​(ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISampleImmutable sample,
                                                        java.lang.String fileName,
                                                        java.lang.Integer versionOrNull)
        Description copied from interface: IDataSetRegistrationTransactionV2
        Returns a sample attachment content. If the version is not specified then the latest version of the attachment is returned. Returns null if the attachment does not exist.
        Specified by:
        getAttachmentContent in interface IDataSetRegistrationTransactionV2
      • close

        public void close()