Skip to content
Snippets Groups Projects
Commit 91d7959f authored by jakubs's avatar jakubs
Browse files

BIS-190 SP-295 implement creation of new metaprojects in dropboxes

SVN: 27513
parent c95ac0b6
No related branches found
No related tags found
No related merge requests found
......@@ -211,6 +211,18 @@ public interface IDataSetRegistrationTransaction
IExternalDataManagementSystemImmutable getExternalDataManagementSystem(
String externalDataManagementSystemCode);
/**
* Creates the new metaproject for the current user. Only allowed when there is a user
* available.
*/
IMetaproject createNewMetaproject(String name, String description);
/**
* Creates the new metaproject for the specified user. Only allowed when there is no user
* available.
*/
IMetaproject createNewMetaproject(String name, String description, String ownerId);
// File operations -- The source and destination paths are local to the incoming data set folder
// or incoming directory if the data set is just one file
......@@ -278,7 +290,6 @@ public interface IDataSetRegistrationTransaction
*/
ISearchService getSearchServiceUnfiltered();
/**
* @return A service which can be used to get authorization information about a user.
*/
......
......@@ -42,6 +42,7 @@ import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperiment;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperimentUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMaterial;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMetaproject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IProject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISample;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISpace;
......@@ -689,6 +690,25 @@ public abstract class AbstractTransactionState<T extends DataSetInformation>
return null;
}
private IMetaproject tryFindMetaprojectToRegister(String name)
{
for (Metaproject p : metaprojectsToBeRegistered)
{
if (p.getName().equals(name) && p.getOwnerId() == getUserId())
{
return p;
}
}
return null;
}
public IMetaproject createNewMetaproject(String name, String description, String ownerId)
{
Metaproject metaproject = Metaproject.createMetaproject(name, description, ownerId);
metaprojectsToBeRegistered.add(metaproject);
return metaproject;
}
public String moveFile(String src, IDataSet dst)
{
File srcFile = new File(src);
......
......@@ -49,6 +49,7 @@ import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperiment;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperimentUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMaterial;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMetaproject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IProject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISample;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISpace;
......@@ -417,6 +418,28 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
return (null == result) ? null : new ExternalDataManagementSystemImmutable(result);
}
@Override
public IMetaproject createNewMetaproject(String name, String description)
{
if (getUserId() == null)
{
throw new IllegalArgumentException(
"Cannot create a new metaproject when user is not available nor specified. ");
}
return getStateAsLiveState().createNewMetaproject(name, description, getUserId());
}
@Override
public IMetaproject createNewMetaproject(String name, String description, String ownerId)
{
if (getUserId() != null && false == getUserId().equals(ownerId))
{
throw new IllegalArgumentException(
"Cannot create metaproject for different user then the current one.");
}
return getStateAsLiveState().createNewMetaproject(name, description, ownerId);
}
@Override
public String moveFile(String src, IDataSet dst)
{
......
......@@ -28,6 +28,7 @@ import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperiment;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperimentUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMaterial;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMetaproject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IProject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISample;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISpace;
......@@ -186,6 +187,18 @@ public class DataSetRegistrationTransactionV2Delegate implements IDataSetRegistr
return transaction.createNewMaterial(materialCode, materialType);
}
@Override
public IMetaproject createNewMetaproject(String name, String description)
{
return transaction.createNewMetaproject(name, description);
}
@Override
public IMetaproject createNewMetaproject(String name, String description, String ownerId)
{
return transaction.createNewMetaproject(name, description, ownerId);
}
@Override
public String moveFile(String src, IDataSet dst)
{
......
......@@ -27,6 +27,7 @@ import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperiment;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperimentUpdatable;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMaterial;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IMetaproject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.IProject;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISample;
import ch.systemsx.cisd.etlserver.registrator.api.v1.ISpace;
......@@ -198,6 +199,18 @@ public interface IDataSetRegistrationTransactionV2
*/
IMaterial createNewMaterial(String materialCode, String materialType);
/**
* Creates the new metaproject for the current user. Only allowed when there is a user
* available.
*/
IMetaproject createNewMetaproject(String name, String description);
/**
* Creates the new metaproject for the specified user. Only allowed when there is no user
* available.
*/
IMetaproject createNewMetaproject(String name, String description, String ownerId);
// File operations -- The source and destination paths are local to the incoming data set folder
// or incoming directory if the data set is just one file
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment