diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java index 58907b69d370ecba6ff25e875c3bd6b547e8abf2..0eee41ccf3a83b0b384f2fe71ae908255ad83f75 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java @@ -26,6 +26,7 @@ import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.IAuthorizationService; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable; @@ -179,6 +180,15 @@ public interface IDataSetRegistrationTransaction */ IMaterial createNewMaterial(String materialCode, String materialType); + /** + * Get an external data management system from the openBIS AS. Returns null if the object does + * not exist. + * + * @return external data management system or null + */ + IExternalDataManagementSystemImmutable getExternalDataManagementSystem( + String externalDataManagementSystemCode); + // 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 diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IExternalDataManagementSystem.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IExternalDataManagementSystem.java new file mode 100644 index 0000000000000000000000000000000000000000..69635f06bd8e0803c7938431e65f54b31f3aa158 --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IExternalDataManagementSystem.java @@ -0,0 +1,27 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.etlserver.registrator.api.v1; + +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable; + +/** + * @author Jakub Straszewski + */ +public interface IExternalDataManagementSystem extends IExternalDataManagementSystemImmutable +{ + +} diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java index 0dfcf845236a6eac3720e669123c883f257a5808..ffc3dc5b49ad4bd9abd73358b164a73eb2d3d513 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java @@ -34,8 +34,8 @@ import ch.systemsx.cisd.etlserver.DssRegistrationLogger; import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState; import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState; import ch.systemsx.cisd.etlserver.registrator.DataSetFile; -import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap; import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails; +import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap; import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationService; import ch.systemsx.cisd.etlserver.registrator.DataSetStorageAlgorithmRunner; import ch.systemsx.cisd.etlserver.registrator.IDataSetOnErrorActionDecision.ErrorType; @@ -60,6 +60,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.IAuthorizationService; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable; @@ -225,11 +226,13 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem this.autoRecoverySettings = autoRecoverySettings; } + @Override public String getUserId() { return getStateAsLiveState().getUserId(); } + @Override public void setUserId(String userIdOrNull) { getStateAsLiveState().setUserId(userIdOrNull); @@ -380,6 +383,15 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem return getStateAsLiveState().createNewMaterial(materialCode, materialType); } + @Override + public IExternalDataManagementSystemImmutable getExternalDataManagementSystem( + String externalDataManagementSystemCode) + { + ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem result = + openBisService.tryGetExternalDataManagementSystem(externalDataManagementSystemCode); + return (null == result) ? null : new ExternalDataManagementSystemImmutable(result); + } + @Override public String moveFile(String src, IDataSet dst) { @@ -420,8 +432,6 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem { return registrationContext; } - - /** * Commit the transaction. Does not throw exceptions if the commit fails on some datasets! @@ -641,7 +651,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem { return registrationService.getIncomingDataSetFile(); } - + @Override public File getIncoming() { diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystem.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystem.java new file mode 100644 index 0000000000000000000000000000000000000000..d8e6aa6e8f5e6759bdd6faafc87cd3fa5312861e --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystem.java @@ -0,0 +1,33 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.etlserver.registrator.api.v1.impl; + +import ch.systemsx.cisd.etlserver.registrator.api.v1.IExternalDataManagementSystem; + +/** + * @author Jakub Straszewski + */ +public class ExternalDataManagementSystem extends ExternalDataManagementSystemImmutable implements + IExternalDataManagementSystem +{ + public ExternalDataManagementSystem( + ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem externalDMS) + { + super(externalDMS); + } + +} diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystemImmutable.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystemImmutable.java new file mode 100644 index 0000000000000000000000000000000000000000..295c0f1cfea35b175cc4b5f4c4906331e651587f --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/ExternalDataManagementSystemImmutable.java @@ -0,0 +1,41 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.etlserver.registrator.api.v1.impl; + +import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable; + +/** + * @author Jakub Straszewski + */ +public class ExternalDataManagementSystemImmutable implements + IExternalDataManagementSystemImmutable +{ + private final ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem externalDMS; + + public ExternalDataManagementSystemImmutable( + ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem externalDMS) + { + this.externalDMS = externalDMS; + } + + @Override + public String getCode() + { + return externalDMS.getCode(); + } + +} diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java index b8df2d8c23f4f4e10aeb4eb05d8aadeaa7bd6867..9f97cfbaa28a0e45fd5bf3ebeaad1ac9924b0c45 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java @@ -50,6 +50,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListMaterialCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria; @@ -749,4 +750,12 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer return service.filterToVisibleSamples(session.getSessionToken(), user, sampleIdentifiers); } + @Override + public ExternalDataManagementSystem tryGetExternalDataManagementSystem( + String externalDataManagementSystemCode) + { + return service.tryGetExternalDataManagementSystem(session.getToken(), + externalDataManagementSystemCode); + } + } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java index 85940cd0bb7afb6d50690a080a3bcddde0bcad83..6221a068ef560b2f2ac835a5b255be7f6f14fe5e 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java @@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataManagementSystem; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListMaterialCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria; @@ -545,4 +546,12 @@ public interface IEncapsulatedOpenBISService */ @ManagedAuthentication public List<String> filterToVisibleSamples(String user, List<String> sampleIdentifiers); + + /** + * For given code returns the corresponding {@link ExternalDataManagementSystem}. + */ + @ManagedAuthentication + public ExternalDataManagementSystem tryGetExternalDataManagementSystem( + String externalDataManagementSystemCode); + } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IExternalDataManagementSystemImmutable.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IExternalDataManagementSystemImmutable.java new file mode 100644 index 0000000000000000000000000000000000000000..0a3361a60b571224a31f07c812695eb8a0bdd059 --- /dev/null +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v1/IExternalDataManagementSystemImmutable.java @@ -0,0 +1,27 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1; + +/** + * + * + * @author Jakub Straszewski + */ +public interface IExternalDataManagementSystemImmutable +{ + String getCode(); +}