From ed6838bf653f24c48d1a623109f39916cdab2577 Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Wed, 25 Feb 2015 15:24:00 +0000 Subject: [PATCH] SSDM-1488 : V3 AS API - Improvements for Seek integration SVN: 33531 --- .../entity/dataset/DataSetTranslator.java | 13 + .../dataset/ExternalDataTranslator.java | 131 +++++++++ .../dataset/FileFormatTypeTranslator.java | 53 ++++ .../entity/dataset/LocatorTypeTranslator.java | 53 ++++ .../vocabulary/VocabularyTermTranslator.java | 76 ++++++ .../vocabulary/VocabularyTranslator.java | 64 +++++ .../systemtest/api/v3/SearchDataSetTest.java | 119 +++++++-- .../dto/entity/dataset/ArchivingStatus.java | 28 ++ .../api/v3/dto/entity/dataset/Complete.java | 30 +++ .../api/v3/dto/entity/dataset/DataSet.java | 24 ++ .../v3/dto/entity/dataset/ExternalData.java | 251 ++++++++++++++++++ .../v3/dto/entity/dataset/FileFormatType.java | 81 ++++++ .../v3/dto/entity/dataset/LocatorType.java | 81 ++++++ .../v3/dto/entity/vocabulary/Vocabulary.java | 138 ++++++++++ .../dto/entity/vocabulary/VocabularyTerm.java | 210 +++++++++++++++ .../dataset/DataSetFetchOptions.java | 26 ++ .../dataset/ExternalDataFetchOptions.java | 108 ++++++++ .../dataset/FileFormatTypeFetchOptions.java | 30 +++ .../dataset/LocatorTypeFetchOptions.java | 30 +++ .../vocabulary/VocabularyFetchOptions.java | 56 ++++ .../VocabularyTermFetchOptions.java | 82 ++++++ .../api/v3/dto/generators/Generator.java | 82 ++++++ 22 files changed, 1750 insertions(+), 16 deletions(-) create mode 100644 openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/ExternalDataTranslator.java create mode 100644 openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/FileFormatTypeTranslator.java create mode 100644 openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/LocatorTypeTranslator.java create mode 100644 openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTermTranslator.java create mode 100644 openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTranslator.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ArchivingStatus.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/Complete.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ExternalData.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/FileFormatType.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/LocatorType.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/Vocabulary.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/VocabularyTerm.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/ExternalDataFetchOptions.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/FileFormatTypeFetchOptions.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/LocatorTypeFetchOptions.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyFetchOptions.java create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyTermFetchOptions.java diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java index 4ad763e194f..4deeb3ef4c3 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java @@ -29,12 +29,14 @@ import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.property.Prop import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.tag.TagTranslator; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSet; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSetType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ExternalData; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.tag.Tag; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; /** @@ -159,6 +161,17 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet result.setModifier(modifier); result.getFetchOptions().withModifierUsing(getFetchOptions().withModifier()); } + + if (getFetchOptions().hasExternalData()) + { + if (dataPe instanceof ExternalDataPE) + { + ExternalData externalData = + new ExternalDataTranslator(getTranslationContext(), getFetchOptions().withExternalData()).translate((ExternalDataPE) dataPe); + result.setExternalData(externalData); + } + result.getFetchOptions().withExternalDataUsing(getFetchOptions().withExternalData()); + } } } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/ExternalDataTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/ExternalDataTranslator.java new file mode 100644 index 00000000000..6e4a11d3015 --- /dev/null +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/ExternalDataTranslator.java @@ -0,0 +1,131 @@ +/* + * Copyright 2013 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.ethz.sis.openbis.generic.server.api.v3.translator.entity.dataset; + +import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.vocabulary.VocabularyTermTranslator; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ArchivingStatus; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.Complete; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ExternalData; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.ExternalDataFetchOptions; +import ch.systemsx.cisd.openbis.common.types.BooleanOrUnknown; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; + +/** + * @author pkupczyk + */ +public class ExternalDataTranslator extends AbstractCachingTranslator<ExternalDataPE, ExternalData, ExternalDataFetchOptions> +{ + public ExternalDataTranslator(TranslationContext translationContext, ExternalDataFetchOptions fetchOptions) + { + super(translationContext, fetchOptions); + } + + @Override + protected ExternalData createObject(ExternalDataPE data) + { + ExternalData result = new ExternalData(); + + result.setShareId(data.getShareId()); + result.setLocation(data.getLocation()); + result.setSize(data.getSize()); + result.setComplete(translateComplete(data.getComplete())); + result.setStatus(translateStatus(data.getStatus())); + result.setPresentInArchive(data.isPresentInArchive()); + result.setStorageConfirmation(data.isStorageConfirmation()); + result.setSpeedHint(data.getSpeedHint()); + result.setFetchOptions(new ExternalDataFetchOptions()); + + return result; + } + + private Complete translateComplete(BooleanOrUnknown value) + { + if (value != null) + { + switch (value) + { + case T: + return Complete.YES; + case F: + return Complete.NO; + case U: + return Complete.UNKNOWN; + default: + throw new IllegalArgumentException("Unknown value: " + value); + } + } + + return null; + } + + private ArchivingStatus translateStatus(DataSetArchivingStatus value) + { + if (value != null) + { + switch (value) + { + case ARCHIVE_PENDING: + return ArchivingStatus.ARCHIVE_PENDING; + case ARCHIVED: + return ArchivingStatus.ARCHIVED; + case AVAILABLE: + return ArchivingStatus.AVAILABLE; + case BACKUP_PENDING: + return ArchivingStatus.BACKUP_PENDING; + case LOCKED: + return ArchivingStatus.LOCKED; + case UNARCHIVE_PENDING: + return ArchivingStatus.UNARCHIVE_PENDING; + default: + throw new IllegalArgumentException("Unknown value: " + value); + } + } + + return null; + } + + @Override + protected void updateObject(ExternalDataPE data, ExternalData result, Relations relations) + { + if (getFetchOptions().hasFileFormatType()) + { + result.setFileFormatType(new FileFormatTypeTranslator(getTranslationContext(), getFetchOptions().withFileFormatType()).translate(data + .getFileFormatType())); + result.getFetchOptions().withFileFormatTypeUsing(getFetchOptions().withFileFormatType()); + } + + if (getFetchOptions().hasLocatorType()) + { + result.setLocatorType(new LocatorTypeTranslator(getTranslationContext(), getFetchOptions().withLocatorType()).translate(data + .getLocatorType())); + result.getFetchOptions().withLocatorTypeUsing(getFetchOptions().withLocatorType()); + } + + if (getFetchOptions().hasStorageFormatVocabularyTerm()) + { + result.setStorageFormatVocabularyTerm(new VocabularyTermTranslator(getTranslationContext(), getFetchOptions() + .withStorageFormatVocabularyTerm()).translate(data + .getStorageFormatVocabularyTerm())); + result.getFetchOptions().withStorageFormatVocabularyTermUsing(getFetchOptions().withStorageFormatVocabularyTerm()); + } + } + +} diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/FileFormatTypeTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/FileFormatTypeTranslator.java new file mode 100644 index 00000000000..f56fbf6bf02 --- /dev/null +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/FileFormatTypeTranslator.java @@ -0,0 +1,53 @@ +/* + * Copyright 2013 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.ethz.sis.openbis.generic.server.api.v3.translator.entity.dataset; + +import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.FileFormatType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.FileFormatTypeFetchOptions; +import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatTypePE; + +/** + * @author pkupczyk + */ +public class FileFormatTypeTranslator extends AbstractCachingTranslator<FileFormatTypePE, FileFormatType, FileFormatTypeFetchOptions> +{ + public FileFormatTypeTranslator(TranslationContext translationContext, FileFormatTypeFetchOptions fetchOptions) + { + super(translationContext, fetchOptions); + } + + @Override + protected FileFormatType createObject(FileFormatTypePE type) + { + FileFormatType result = new FileFormatType(); + + result.setCode(type.getCode()); + result.setDescription(type.getDescription()); + result.setFetchOptions(new FileFormatTypeFetchOptions()); + + return result; + } + + @Override + protected void updateObject(FileFormatTypePE type, FileFormatType result, Relations relations) + { + } + +} diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/LocatorTypeTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/LocatorTypeTranslator.java new file mode 100644 index 00000000000..0b7436c6b0d --- /dev/null +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/LocatorTypeTranslator.java @@ -0,0 +1,53 @@ +/* + * Copyright 2013 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.ethz.sis.openbis.generic.server.api.v3.translator.entity.dataset; + +import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.LocatorType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.LocatorTypeFetchOptions; +import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorTypePE; + +/** + * @author pkupczyk + */ +public class LocatorTypeTranslator extends AbstractCachingTranslator<LocatorTypePE, LocatorType, LocatorTypeFetchOptions> +{ + public LocatorTypeTranslator(TranslationContext translationContext, LocatorTypeFetchOptions fetchOptions) + { + super(translationContext, fetchOptions); + } + + @Override + protected LocatorType createObject(LocatorTypePE type) + { + LocatorType result = new LocatorType(); + + result.setCode(type.getCode()); + result.setDescription(type.getDescription()); + result.setFetchOptions(new LocatorTypeFetchOptions()); + + return result; + } + + @Override + protected void updateObject(LocatorTypePE type, LocatorType result, Relations relations) + { + } + +} diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTermTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTermTranslator.java new file mode 100644 index 00000000000..6d95d0640fa --- /dev/null +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTermTranslator.java @@ -0,0 +1,76 @@ +/* + * Copyright 2013 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.ethz.sis.openbis.generic.server.api.v3.translator.entity.vocabulary; + +import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.person.PersonTranslator; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.Vocabulary; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.VocabularyTerm; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyTermFetchOptions; +import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyTermPE; + +/** + * @author pkupczyk + */ +public class VocabularyTermTranslator extends AbstractCachingTranslator<VocabularyTermPE, VocabularyTerm, VocabularyTermFetchOptions> +{ + public VocabularyTermTranslator(TranslationContext translationContext, VocabularyTermFetchOptions fetchOptions) + { + super(translationContext, fetchOptions); + } + + @Override + protected VocabularyTerm createObject(VocabularyTermPE term) + { + VocabularyTerm result = new VocabularyTerm(); + + result.setCode(term.getCode()); + result.setDescription(term.getDescription()); + result.setLabel(term.getLabel()); + result.setOfficial(term.isOfficial()); + result.setOrdinal(term.getOrdinal()); + result.setRegistrationDate(term.getRegistrationDate()); + result.setModificationDate(term.getModificationDate()); + result.setFetchOptions(new VocabularyTermFetchOptions()); + + return result; + } + + @Override + protected void updateObject(VocabularyTermPE term, VocabularyTerm result, Relations relations) + { + if (getFetchOptions().hasRegistrator()) + { + Person registrator = + new PersonTranslator(getTranslationContext(), getFetchOptions().withRegistrator()).translate(term.getRegistrator()); + result.setRegistrator(registrator); + result.getFetchOptions().withRegistratorUsing(getFetchOptions().withRegistrator()); + } + + if (getFetchOptions().hasVocabulary()) + { + Vocabulary vocabulary = + new VocabularyTranslator(getTranslationContext(), getFetchOptions().withVocabulary()).translate(term.getVocabulary()); + result.setVocabulary(vocabulary); + result.getFetchOptions().withVocabularyUsing(getFetchOptions().withVocabulary()); + } + } + +} diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTranslator.java new file mode 100644 index 00000000000..7991c20d1e5 --- /dev/null +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/vocabulary/VocabularyTranslator.java @@ -0,0 +1,64 @@ +/* + * Copyright 2013 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.ethz.sis.openbis.generic.server.api.v3.translator.entity.vocabulary; + +import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.person.PersonTranslator; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.Vocabulary; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyFetchOptions; +import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE; + +/** + * @author pkupczyk + */ +public class VocabularyTranslator extends AbstractCachingTranslator<VocabularyPE, Vocabulary, VocabularyFetchOptions> +{ + public VocabularyTranslator(TranslationContext translationContext, VocabularyFetchOptions fetchOptions) + { + super(translationContext, fetchOptions); + } + + @Override + protected Vocabulary createObject(VocabularyPE vocabulary) + { + Vocabulary result = new Vocabulary(); + + result.setCode(vocabulary.getCode()); + result.setDescription(vocabulary.getDescription()); + result.setRegistrationDate(vocabulary.getRegistrationDate()); + result.setModificationDate(vocabulary.getModificationDate()); + result.setFetchOptions(new VocabularyFetchOptions()); + + return result; + } + + @Override + protected void updateObject(VocabularyPE vocabulary, Vocabulary result, Relations relations) + { + if (getFetchOptions().hasRegistrator()) + { + Person registrator = + new PersonTranslator(getTranslationContext(), getFetchOptions().withRegistrator()).translate(vocabulary.getRegistrator()); + result.setRegistrator(registrator); + result.getFetchOptions().withRegistratorUsing(getFetchOptions().withRegistrator()); + } + } + +} diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/SearchDataSetTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/SearchDataSetTest.java index e5a4ceaf418..909f1f92170 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/SearchDataSetTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/SearchDataSetTest.java @@ -17,10 +17,10 @@ package ch.ethz.sis.openbis.systemtest.api.v3; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; -import java.text.SimpleDateFormat; import java.util.Collections; -import java.util.Date; import java.util.List; import java.util.TreeMap; @@ -28,8 +28,18 @@ import junit.framework.Assert; import org.testng.annotations.Test; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ArchivingStatus; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.Complete; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSet; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ExternalData; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.FileFormatType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.LocatorType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.Vocabulary; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.VocabularyTerm; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.ExternalDataFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyTermFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.search.DataSetSearchCriterion; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.search.SampleSearchCriterion; @@ -80,7 +90,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withProperty("COMMENT").thatContains("non-virt"); testSearch(TEST_USER, criterion, "20110509092359990-11", "20110509092359990-12"); } - + @Test public void testSearchWithRegistrationDateIsEarlierThan() { @@ -88,7 +98,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withRegistrationDate().thatIsEarlierThanOrEqualTo("2008-11-05 09:22:00"); testSearch(TEST_USER, criterion, "20081105092159188-3"); } - + @Test public void testSearchWithModicationDateIsLaterThan() { @@ -122,7 +132,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withChildren().withCode().thatEquals("20081105092259000-9"); testSearch(TEST_USER, criterion, "20081105092159111-1"); } - + @Test public void testSearchWithParent() { @@ -130,7 +140,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withParents().withCode().thatEquals("20081105092159111-1"); testSearch(TEST_USER, criterion, "20081105092259000-9"); } - + @Test public void testSearchWithExperimentWithPermIdThatEquals() { @@ -138,7 +148,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withExperiment().withPermId().thatEquals("200902091255058-1035"); testSearch(TEST_USER, criterion, "20081105092159333-3", "20110805092359990-17"); } - + @Test public void testSearchWithExperimentWithProperty() { @@ -154,7 +164,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withExperiment().withProperty("GENDER").thatEquals("MALE"); testSearch(TEST_USER, criterion, "20081105092159188-3"); } - + @Test public void testSearchWithExperimentYoungerThan() { @@ -162,7 +172,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withExperiment().withRegistrationDate().thatIsLaterThanOrEqualTo("2009-02-09 12:11:00"); testSearch(TEST_USER, criterion, "20081105092159333-3", "20110805092359990-17"); } - + @Test public void testSearchWithSampleWithAnyPropertyThatContains() { @@ -170,7 +180,7 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withSample().withAnyProperty().thatContains("er"); testSearch(TEST_USER, criterion, "20081105092159111-1", "20081105092159333-3", "20110805092359990-17", "20081105092159222-2"); } - + @Test public void testSearchWithSampleWithPropertiesThatContains() { @@ -180,7 +190,7 @@ public class SearchDataSetTest extends AbstractDataSetTest sampleSearchCriterion.withProperty("ORGANISM").thatContains("LY"); testSearch(TEST_USER, criterion, "20081105092159111-1", "20081105092159333-3", "20110805092359990-17"); } - + @Test public void testSearchWithFetchOptionExperiment() { @@ -188,9 +198,9 @@ public class SearchDataSetTest extends AbstractDataSetTest criterion.withPermId().thatEquals("20110805092359990-17"); DataSetFetchOptions fetchOptions = new DataSetFetchOptions(); fetchOptions.withExperiment().withProperties(); - + List<DataSet> dataSets = searchDataSets(TEST_USER, criterion, fetchOptions); - + Collections.sort(dataSets, DATA_SET_COMPARATOR); assertEquals(dataSets.get(0).getCode(), "20110805092359990-17"); assertEquals(dataSets.get(0).getPermId().toString(), "20110805092359990-17"); @@ -204,11 +214,88 @@ public class SearchDataSetTest extends AbstractDataSetTest assertContainersNotFetched(dataSets.get(0)); assertContainedNotFetched(dataSets.get(0)); assertEquals(dataSets.get(0).getExperiment().getIdentifier().toString(), "/CISD/NEMO/EXP-TEST-2"); - assertEquals(new TreeMap<String, String>(dataSets.get(0).getExperiment().getProperties()).toString(), + assertEquals(new TreeMap<String, String>(dataSets.get(0).getExperiment().getProperties()).toString(), "{DESCRIPTION=very important expertiment, GENDER=FEMALE, PURCHASE_DATE=2009-02-09 10:00:00 +0100}"); assertEquals(dataSets.size(), 1); } - + + @Test + public void testSearchWithFetchOptionExternalDataForPhysicalDataSet() + { + DataSetSearchCriterion criterion = new DataSetSearchCriterion(); + criterion.withPermId().thatEquals("20081105092159111-1"); + DataSetFetchOptions fetchOptions = new DataSetFetchOptions(); + + ExternalDataFetchOptions externalDataFetchOptions = fetchOptions.withExternalData(); + externalDataFetchOptions.withFileFormatType(); + externalDataFetchOptions.withLocatorType(); + + VocabularyTermFetchOptions storageFormatTermFetchOptions = externalDataFetchOptions.withStorageFormatVocabularyTerm(); + storageFormatTermFetchOptions.withRegistrator(); + + VocabularyFetchOptions storageFormatVocabularyFetchOptions = storageFormatTermFetchOptions.withVocabulary(); + storageFormatVocabularyFetchOptions.withRegistrator(); + + List<DataSet> dataSets = searchDataSets(TEST_USER, criterion, fetchOptions); + + assertEquals(dataSets.size(), 1); + DataSet dataSet = dataSets.get(0); + + assertEquals(dataSet.getCode(), "20081105092159111-1"); + + ExternalData externalData = dataSet.getExternalData(); + assertEquals(externalData.getShareId(), "42"); + assertEquals(externalData.getLocation(), "a/1"); + assertEquals(externalData.getSize(), Long.valueOf(4711)); + assertEquals(externalData.getComplete(), Complete.UNKNOWN); + assertEquals(externalData.getStatus(), ArchivingStatus.AVAILABLE); + assertFalse(externalData.isPresentInArchive()); + assertFalse(externalData.isStorageConfirmation()); + + FileFormatType fileFormatType = externalData.getFileFormatType(); + assertEquals(fileFormatType.getCode(), "TIFF"); + assertEquals(fileFormatType.getDescription(), "TIFF File"); + + LocatorType locatorType = externalData.getLocatorType(); + assertEquals(locatorType.getCode(), "RELATIVE_LOCATION"); + assertEquals(locatorType.getDescription(), "Relative Location"); + + VocabularyTerm storageFormatTerm = externalData.getStorageFormatVocabularyTerm(); + assertEquals(storageFormatTerm.getCode(), "PROPRIETARY"); + assertEquals(storageFormatTerm.getLabel(), null); + assertEquals(storageFormatTerm.getDescription(), null); + assertEquals(storageFormatTerm.getOrdinal(), Long.valueOf(1)); + assertTrue(storageFormatTerm.isOfficial()); + assertEquals(storageFormatTerm.getRegistrator().getUserId(), "system"); + assertEqualsDate(storageFormatTerm.getRegistrationDate(), "2008-11-05 09:18:00"); + assertEqualsDate(storageFormatTerm.getModificationDate(), "2008-11-05 09:18:00"); + + Vocabulary storageFormatVocabulary = storageFormatTerm.getVocabulary(); + assertEquals(storageFormatVocabulary.getCode(), "$STORAGE_FORMAT"); + assertEquals(storageFormatVocabulary.getDescription(), "The on-disk storage format of a data set"); + assertEquals(storageFormatVocabulary.getRegistrator().getUserId(), "system"); + assertEqualsDate(storageFormatVocabulary.getRegistrationDate(), "2008-11-05 09:18:00"); + assertEqualsDate(storageFormatVocabulary.getModificationDate(), "2009-03-23 15:34:44"); + } + + @Test + public void testSearchWithFetchOptionExternalDataForContainerDataSet() + { + DataSetSearchCriterion criterion = new DataSetSearchCriterion(); + criterion.withPermId().thatEquals("ROOT_CONTAINER"); + + DataSetFetchOptions fetchOptions = new DataSetFetchOptions(); + fetchOptions.withExternalData(); + + List<DataSet> dataSets = searchDataSets(TEST_USER, criterion, fetchOptions); + + assertEquals(dataSets.size(), 1); + DataSet dataSet = dataSets.get(0); + + assertEquals(dataSet.getCode(), "ROOT_CONTAINER"); + assertEquals(dataSet.getExternalData(), null); + } + // @Test // public void testSearchWithPermId() // { @@ -723,6 +810,6 @@ public class SearchDataSetTest extends AbstractDataSetTest { v3api.logout(sessionToken); } - + } } diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ArchivingStatus.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ArchivingStatus.java new file mode 100644 index 00000000000..8088593569f --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ArchivingStatus.java @@ -0,0 +1,28 @@ +/* + * Copyright 2015 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("dto.entity.dataset.ArchivingStatus") +public enum ArchivingStatus +{ + AVAILABLE, LOCKED, ARCHIVED, UNARCHIVE_PENDING, ARCHIVE_PENDING, BACKUP_PENDING +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/Complete.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/Complete.java new file mode 100644 index 00000000000..7831dffbdb0 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/Complete.java @@ -0,0 +1,30 @@ +/* + * Copyright 2015 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("dto.entity.dataset.Complete") +public enum Complete +{ + + YES, NO, UNKNOWN + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/DataSet.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/DataSet.java index f65c6f1f5b2..fc0e5879a34 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/DataSet.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/DataSet.java @@ -16,6 +16,7 @@ package ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSetType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ExternalData; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.Sample; @@ -70,6 +71,9 @@ public class DataSet implements Serializable @JsonProperty private List<DataSet> contained; + @JsonProperty + private ExternalData externalData; + @JsonProperty private Set<Tag> tags; @@ -255,6 +259,26 @@ public class DataSet implements Serializable this.contained = contained; } + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public ExternalData getExternalData() + { + if (getFetchOptions().hasExternalData()) + { + return externalData; + } + else + { + throw new NotFetchedException("External data has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setExternalData(ExternalData externalData) + { + this.externalData = externalData; + } + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} @JsonIgnore public Set<Tag> getTags() diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ExternalData.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ExternalData.java new file mode 100644 index 00000000000..72fa9f0fa96 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/ExternalData.java @@ -0,0 +1,251 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ArchivingStatus; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.Complete; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.FileFormatType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.LocatorType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.VocabularyTerm; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.ExternalDataFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.NotFetchedException; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.entity.dataset.ExternalData") +public class ExternalData implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private ExternalDataFetchOptions fetchOptions; + + @JsonProperty + private String shareId; + + @JsonProperty + private String location; + + @JsonProperty + private Long size; + + @JsonProperty + private VocabularyTerm storageFormatVocabularyTerm; + + @JsonProperty + private FileFormatType fileFormatType; + + @JsonProperty + private LocatorType locatorType; + + @JsonProperty + private Complete complete; + + @JsonProperty + private ArchivingStatus status; + + @JsonProperty + private Boolean presentInArchive; + + @JsonProperty + private Boolean storageConfirmation; + + @JsonProperty + private Integer speedHint; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public ExternalDataFetchOptions getFetchOptions() + { + return fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFetchOptions(ExternalDataFetchOptions fetchOptions) + { + this.fetchOptions = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getShareId() + { + return shareId; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setShareId(String shareId) + { + this.shareId = shareId; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getLocation() + { + return location; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setLocation(String location) + { + this.location = location; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Long getSize() + { + return size; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setSize(Long size) + { + this.size = size; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public VocabularyTerm getStorageFormatVocabularyTerm() + { + if (getFetchOptions().hasStorageFormatVocabularyTerm()) + { + return storageFormatVocabularyTerm; + } + else + { + throw new NotFetchedException("Storage format vocabulary term has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setStorageFormatVocabularyTerm(VocabularyTerm storageFormatVocabularyTerm) + { + this.storageFormatVocabularyTerm = storageFormatVocabularyTerm; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public FileFormatType getFileFormatType() + { + if (getFetchOptions().hasFileFormatType()) + { + return fileFormatType; + } + else + { + throw new NotFetchedException("File Format Type has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFileFormatType(FileFormatType fileFormatType) + { + this.fileFormatType = fileFormatType; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public LocatorType getLocatorType() + { + if (getFetchOptions().hasLocatorType()) + { + return locatorType; + } + else + { + throw new NotFetchedException("Locator Type has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setLocatorType(LocatorType locatorType) + { + this.locatorType = locatorType; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Complete getComplete() + { + return complete; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setComplete(Complete complete) + { + this.complete = complete; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public ArchivingStatus getStatus() + { + return status; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setStatus(ArchivingStatus status) + { + this.status = status; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Boolean isPresentInArchive() + { + return presentInArchive; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setPresentInArchive(Boolean presentInArchive) + { + this.presentInArchive = presentInArchive; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Boolean isStorageConfirmation() + { + return storageConfirmation; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setStorageConfirmation(Boolean storageConfirmation) + { + this.storageConfirmation = storageConfirmation; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Integer getSpeedHint() + { + return speedHint; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setSpeedHint(Integer speedHint) + { + this.speedHint = speedHint; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/FileFormatType.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/FileFormatType.java new file mode 100644 index 00000000000..009bae1bc49 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/FileFormatType.java @@ -0,0 +1,81 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.FileFormatTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.NotFetchedException; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.entity.dataset.FileFormatType") +public class FileFormatType implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private FileFormatTypeFetchOptions fetchOptions; + + @JsonProperty + private String code; + + @JsonProperty + private String description; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public FileFormatTypeFetchOptions getFetchOptions() + { + return fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFetchOptions(FileFormatTypeFetchOptions fetchOptions) + { + this.fetchOptions = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getCode() + { + return code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setCode(String code) + { + this.code = code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getDescription() + { + return description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setDescription(String description) + { + this.description = description; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/LocatorType.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/LocatorType.java new file mode 100644 index 00000000000..b5a4b949def --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/dataset/LocatorType.java @@ -0,0 +1,81 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.LocatorTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.NotFetchedException; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.entity.dataset.LocatorType") +public class LocatorType implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private LocatorTypeFetchOptions fetchOptions; + + @JsonProperty + private String code; + + @JsonProperty + private String description; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public LocatorTypeFetchOptions getFetchOptions() + { + return fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFetchOptions(LocatorTypeFetchOptions fetchOptions) + { + this.fetchOptions = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getCode() + { + return code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setCode(String code) + { + this.code = code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getDescription() + { + return description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setDescription(String description) + { + this.description = description; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/Vocabulary.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/Vocabulary.java new file mode 100644 index 00000000000..a5912acd631 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/Vocabulary.java @@ -0,0 +1,138 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.NotFetchedException; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; +import java.util.Date; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.entity.vocabulary.Vocabulary") +public class Vocabulary implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private VocabularyFetchOptions fetchOptions; + + @JsonProperty + private String code; + + @JsonProperty + private String description; + + @JsonProperty + private Date registrationDate; + + @JsonProperty + private Person registrator; + + @JsonProperty + private Date modificationDate; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public VocabularyFetchOptions getFetchOptions() + { + return fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFetchOptions(VocabularyFetchOptions fetchOptions) + { + this.fetchOptions = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getCode() + { + return code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setCode(String code) + { + this.code = code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getDescription() + { + return description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setDescription(String description) + { + this.description = description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Date getRegistrationDate() + { + return registrationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setRegistrationDate(Date registrationDate) + { + this.registrationDate = registrationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Person getRegistrator() + { + if (getFetchOptions().hasRegistrator()) + { + return registrator; + } + else + { + throw new NotFetchedException("Registrator has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setRegistrator(Person registrator) + { + this.registrator = registrator; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Date getModificationDate() + { + return modificationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setModificationDate(Date modificationDate) + { + this.modificationDate = modificationDate; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/VocabularyTerm.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/VocabularyTerm.java new file mode 100644 index 00000000000..6086efb2f8d --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/entity/vocabulary/VocabularyTerm.java @@ -0,0 +1,210 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.Vocabulary; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyTermFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.exceptions.NotFetchedException; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; +import java.util.Date; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.entity.vocabulary.VocabularyTerm") +public class VocabularyTerm implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private VocabularyTermFetchOptions fetchOptions; + + @JsonProperty + private String code; + + @JsonProperty + private String label; + + @JsonProperty + private String description; + + @JsonProperty + private Long ordinal; + + @JsonProperty + private Boolean official; + + @JsonProperty + private Vocabulary vocabulary; + + @JsonProperty + private Date registrationDate; + + @JsonProperty + private Person registrator; + + @JsonProperty + private Date modificationDate; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public VocabularyTermFetchOptions getFetchOptions() + { + return fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setFetchOptions(VocabularyTermFetchOptions fetchOptions) + { + this.fetchOptions = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getCode() + { + return code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setCode(String code) + { + this.code = code; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getLabel() + { + return label; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setLabel(String label) + { + this.label = label; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public String getDescription() + { + return description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setDescription(String description) + { + this.description = description; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Long getOrdinal() + { + return ordinal; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setOrdinal(Long ordinal) + { + this.ordinal = ordinal; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Boolean isOfficial() + { + return official; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setOfficial(Boolean official) + { + this.official = official; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Vocabulary getVocabulary() + { + if (getFetchOptions().hasVocabulary()) + { + return vocabulary; + } + else + { + throw new NotFetchedException("Vocabulary has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setVocabulary(Vocabulary vocabulary) + { + this.vocabulary = vocabulary; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Date getRegistrationDate() + { + return registrationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setRegistrationDate(Date registrationDate) + { + this.registrationDate = registrationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Person getRegistrator() + { + if (getFetchOptions().hasRegistrator()) + { + return registrator; + } + else + { + throw new NotFetchedException("Registrator has not been fetched."); + } + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setRegistrator(Person registrator) + { + this.registrator = registrator; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + @JsonIgnore + public Date getModificationDate() + { + return modificationDate; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public void setModificationDate(Date modificationDate) + { + this.modificationDate = modificationDate; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/DataSetFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/DataSetFetchOptions.java index 06fafcc1ce9..d4eb2622462 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/DataSetFetchOptions.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/DataSetFetchOptions.java @@ -17,6 +17,7 @@ package ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.ExternalDataFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.experiment.ExperimentFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.person.PersonFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.property.PropertyFetchOptions; @@ -46,6 +47,9 @@ public class DataSetFetchOptions implements Serializable @JsonProperty private DataSetFetchOptions contained; + @JsonProperty + private ExternalDataFetchOptions externalData; + @JsonProperty private TagFetchOptions tags; @@ -155,6 +159,28 @@ public class DataSetFetchOptions implements Serializable return contained != null; } + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public ExternalDataFetchOptions withExternalData() + { + if (externalData == null) + { + externalData = new ExternalDataFetchOptions(); + } + return externalData; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public ExternalDataFetchOptions withExternalDataUsing(ExternalDataFetchOptions fetchOptions) + { + return externalData = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasExternalData() + { + return externalData != null; + } + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} public TagFetchOptions withTags() { diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/ExternalDataFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/ExternalDataFetchOptions.java new file mode 100644 index 00000000000..50cf52beadd --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/ExternalDataFetchOptions.java @@ -0,0 +1,108 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.FileFormatTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.LocatorTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyTermFetchOptions; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.fetchoptions.dataset.ExternalDataFetchOptions") +public class ExternalDataFetchOptions implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private VocabularyTermFetchOptions storageFormatVocabularyTerm; + + @JsonProperty + private FileFormatTypeFetchOptions fileFormatType; + + @JsonProperty + private LocatorTypeFetchOptions locatorType; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public VocabularyTermFetchOptions withStorageFormatVocabularyTerm() + { + if (storageFormatVocabularyTerm == null) + { + storageFormatVocabularyTerm = new VocabularyTermFetchOptions(); + } + return storageFormatVocabularyTerm; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public VocabularyTermFetchOptions withStorageFormatVocabularyTermUsing(VocabularyTermFetchOptions fetchOptions) + { + return storageFormatVocabularyTerm = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasStorageFormatVocabularyTerm() + { + return storageFormatVocabularyTerm != null; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public FileFormatTypeFetchOptions withFileFormatType() + { + if (fileFormatType == null) + { + fileFormatType = new FileFormatTypeFetchOptions(); + } + return fileFormatType; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public FileFormatTypeFetchOptions withFileFormatTypeUsing(FileFormatTypeFetchOptions fetchOptions) + { + return fileFormatType = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasFileFormatType() + { + return fileFormatType != null; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public LocatorTypeFetchOptions withLocatorType() + { + if (locatorType == null) + { + locatorType = new LocatorTypeFetchOptions(); + } + return locatorType; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public LocatorTypeFetchOptions withLocatorTypeUsing(LocatorTypeFetchOptions fetchOptions) + { + return locatorType = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasLocatorType() + { + return locatorType != null; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/FileFormatTypeFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/FileFormatTypeFetchOptions.java new file mode 100644 index 00000000000..0e51ef2141e --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/FileFormatTypeFetchOptions.java @@ -0,0 +1,30 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset; + +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.fetchoptions.dataset.FileFormatTypeFetchOptions") +public class FileFormatTypeFetchOptions implements Serializable +{ + private static final long serialVersionUID = 1L; + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/LocatorTypeFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/LocatorTypeFetchOptions.java new file mode 100644 index 00000000000..e32631e1a7e --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/dataset/LocatorTypeFetchOptions.java @@ -0,0 +1,30 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset; + +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.fetchoptions.dataset.LocatorTypeFetchOptions") +public class LocatorTypeFetchOptions implements Serializable +{ + private static final long serialVersionUID = 1L; + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyFetchOptions.java new file mode 100644 index 00000000000..095cdf1f8b2 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyFetchOptions.java @@ -0,0 +1,56 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.person.PersonFetchOptions; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.fetchoptions.vocabulary.VocabularyFetchOptions") +public class VocabularyFetchOptions implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private PersonFetchOptions registrator; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public PersonFetchOptions withRegistrator() + { + if (registrator == null) + { + registrator = new PersonFetchOptions(); + } + return registrator; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public PersonFetchOptions withRegistratorUsing(PersonFetchOptions fetchOptions) + { + return registrator = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasRegistrator() + { + return registrator != null; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyTermFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyTermFetchOptions.java new file mode 100644 index 00000000000..6b4971f2b67 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/fetchoptions/vocabulary/VocabularyTermFetchOptions.java @@ -0,0 +1,82 @@ +/* + * Copyright 2014 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.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary; + +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.person.PersonFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyFetchOptions; +import ch.systemsx.cisd.base.annotation.JsonObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.io.Serializable; + +/** + * Class automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + */ +@JsonObject("dto.fetchoptions.vocabulary.VocabularyTermFetchOptions") +public class VocabularyTermFetchOptions implements Serializable +{ + private static final long serialVersionUID = 1L; + + @JsonProperty + private VocabularyFetchOptions vocabulary; + + @JsonProperty + private PersonFetchOptions registrator; + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public VocabularyFetchOptions withVocabulary() + { + if (vocabulary == null) + { + vocabulary = new VocabularyFetchOptions(); + } + return vocabulary; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public VocabularyFetchOptions withVocabularyUsing(VocabularyFetchOptions fetchOptions) + { + return vocabulary = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasVocabulary() + { + return vocabulary != null; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public PersonFetchOptions withRegistrator() + { + if (registrator == null) + { + registrator = new PersonFetchOptions(); + } + return registrator; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public PersonFetchOptions withRegistratorUsing(PersonFetchOptions fetchOptions) + { + return registrator = fetchOptions; + } + + // Method automatically generated with {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator} + public boolean hasRegistrator() + { + return registrator != null; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/generators/Generator.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/generators/Generator.java index 18999581f30..564e3639c51 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/generators/Generator.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/shared/api/v3/dto/generators/Generator.java @@ -5,16 +5,26 @@ import java.util.LinkedList; import java.util.List; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.attachment.Attachment; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ArchivingStatus; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.Complete; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.DataSetType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.ExternalData; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.FileFormatType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.dataset.LocatorType; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.ExperimentType; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.person.Person; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.project.Project; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.Sample; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.sample.SampleType; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.Vocabulary; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.vocabulary.VocabularyTerm; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.EmptyFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.attachment.AttachmentFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.DataSetTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.ExternalDataFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.FileFormatTypeFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.dataset.LocatorTypeFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.experiment.ExperimentFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.experiment.ExperimentTypeFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.person.PersonFetchOptions; @@ -23,6 +33,8 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.sample.SampleF import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.sample.SampleTypeFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.space.SpaceFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.tag.TagFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyFetchOptions; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.vocabulary.VocabularyTermFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.entitytype.EntityTypePermId; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentIdentifier; @@ -168,6 +180,7 @@ public class Generator extends AbstractGenerator gen.addFetchedField("List<DataSet>", List.class.getName(), "children", "Children", DataSetFetchOptions.class); gen.addFetchedField("List<DataSet>", List.class.getName(), "containers", "Container data sets", DataSetFetchOptions.class); gen.addFetchedField("List<DataSet>", List.class.getName(), "contained", "Contained data sets", DataSetFetchOptions.class); + gen.addFetchedField("ExternalData", ExternalData.class.getName(), "externalData", "External data", ExternalDataFetchOptions.class); addTags(gen); gen.addFetchedField(DataSetType.class, "type", "Data Set type", DataSetTypeFetchOptions.class); @@ -200,6 +213,75 @@ public class Generator extends AbstractGenerator return gen; } + private static DtoGenerator createExternalDataGenerator() + { + DtoGenerator gen = new DtoGenerator("dataset", "ExternalData", ExternalDataFetchOptions.class); + + gen.addStringField("shareId"); + gen.addStringField("location"); + gen.addSimpleField(Long.class, "size"); + gen.addFetchedField(VocabularyTerm.class, "storageFormatVocabularyTerm", "Storage format vocabulary term", VocabularyTermFetchOptions.class); + gen.addFetchedField(FileFormatType.class, "fileFormatType", "File Format Type", FileFormatTypeFetchOptions.class); + gen.addFetchedField(LocatorType.class, "locatorType", "Locator Type", LocatorTypeFetchOptions.class); + gen.addSimpleField(Complete.class, "complete"); + gen.addSimpleField(ArchivingStatus.class, "status"); + gen.addBooleanField("presentInArchive"); + gen.addBooleanField("storageConfirmation"); + gen.addSimpleField(Integer.class, "speedHint"); + + return gen; + } + + private static DtoGenerator createFileFormatType() + { + DtoGenerator gen = new DtoGenerator("dataset", "FileFormatType", FileFormatTypeFetchOptions.class); + + gen.addStringField("code"); + gen.addStringField("description"); + + return gen; + } + + private static DtoGenerator createLocatorType() + { + DtoGenerator gen = new DtoGenerator("dataset", "LocatorType", LocatorTypeFetchOptions.class); + + gen.addStringField("code"); + gen.addStringField("description"); + + return gen; + } + + private static DtoGenerator createVocabulary() + { + DtoGenerator gen = new DtoGenerator("vocabulary", "Vocabulary", VocabularyFetchOptions.class); + + addCode(gen); + addDescription(gen); + addRegistrationDate(gen); + addRegistrator(gen); + addModificationDate(gen); + + return gen; + } + + private static DtoGenerator createVocabularyTerm() + { + DtoGenerator gen = new DtoGenerator("vocabulary", "VocabularyTerm", VocabularyTermFetchOptions.class); + + addCode(gen); + gen.addStringField("label"); + addDescription(gen); + gen.addSimpleField(Long.class, "ordinal"); + gen.addBooleanField("official"); + gen.addFetchedField(Vocabulary.class, "vocabulary", "Vocabulary", VocabularyFetchOptions.class); + addRegistrationDate(gen); + addRegistrator(gen); + addModificationDate(gen); + + return gen; + } + private static DtoGenerator createPersonGenerator() { DtoGenerator gen = new DtoGenerator("person", "Person", PersonFetchOptions.class); -- GitLab