diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IMasterDataRegistrationTransaction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IMasterDataRegistrationTransaction.java index ad5f6b7151a59c22737c257d9564b2f9c3bf9455..3b0900916bbf903204b33ef358aca732e55a28eb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IMasterDataRegistrationTransaction.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IMasterDataRegistrationTransaction.java @@ -265,11 +265,6 @@ public interface IMasterDataRegistrationTransaction */ IVocabularyTerm createNewVocabularyTerm(String code); - /** - * Adds the specified vocabulary term to the specified vocabulary. - */ - void addVocabularyTermTo(IVocabularyImmutable vocabulary, IVocabularyTerm term); - /** * Returns the vocabulary term with specified code from the specified vocabulary. * diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransaction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransaction.java index ee7c0dcf27a8208f384c72b3782658a2a37a6b5e..c1dfe413f8cc2e450a35a4e656b7cb81b2b55d93 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransaction.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransaction.java @@ -418,24 +418,6 @@ public class MasterDataRegistrationTransaction implements IMasterDataRegistratio return vocabulary; } - @Override - public void addVocabularyTermTo(IVocabularyImmutable vocabulary, IVocabularyTerm term) - { - if (vocabulary instanceof Vocabulary) - { - ((Vocabulary) vocabulary).addTerm(term); - return; - } - Long id = ((VocabularyImmutable) vocabulary).getVocabulary().getId(); - List<VocabularyTerm> terms = createdVocabularyTerms.get(id); - if (terms == null) - { - terms = new ArrayList<VocabularyTerm>(); - createdVocabularyTerms.put(id, terms); - } - terms.add((VocabularyTerm) term); - } - @Override public IVocabularyTerm getVocabularyTerm(IVocabularyImmutable vocabulary, String vocabularyTermCode) @@ -474,7 +456,7 @@ public class MasterDataRegistrationTransaction implements IMasterDataRegistratio IVocabularyImmutable vocabulary = getVocabulary(code); if (vocabulary != null) { - return new VocabularyWrapper((VocabularyImmutable) vocabulary); + return new VocabularyWrapper((VocabularyImmutable) vocabulary, createdVocabularyTerms); } return createNewVocabulary(code); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/VocabularyWrapper.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/VocabularyWrapper.java index c1220575a763a697b8f149beb32783a4dd89b43f..7bc2c8ed5b359c1dd9cacca9c0a12e3abd9ccd12 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/VocabularyWrapper.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/VocabularyWrapper.java @@ -16,6 +16,10 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IVocabulary; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IVocabularyTerm; @@ -26,9 +30,13 @@ import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IVocabularyTerm; */ class VocabularyWrapper extends VocabularyImmutable implements IVocabulary { - VocabularyWrapper(VocabularyImmutable vocabulary) + private final Map<Long, List<VocabularyTerm>> createdVocabularyTerms; + + VocabularyWrapper(VocabularyImmutable vocabulary, + Map<Long, List<VocabularyTerm>> createdVocabularyTerms) { super(vocabulary.getVocabulary()); + this.createdVocabularyTerms = createdVocabularyTerms; } @Override @@ -59,5 +67,13 @@ class VocabularyWrapper extends VocabularyImmutable implements IVocabulary @Override public void addTerm(IVocabularyTerm term) { + Long id = getVocabulary().getId(); + List<VocabularyTerm> terms = createdVocabularyTerms.get(id); + if (terms == null) + { + terms = new ArrayList<VocabularyTerm>(); + createdVocabularyTerms.put(id, terms); + } + terms.add((VocabularyTerm) term); } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransactionTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransactionTest.java index 2b20741e3f61ee2dcc7a8d547b3e77cb501d6a58..be5bcac1c64bb8f67c8e907524651d012fdf06cd 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransactionTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MasterDataRegistrationTransactionTest.java @@ -502,7 +502,7 @@ public class MasterDataRegistrationTransactionTest extends AssertJUnit IVocabularyTerm term = transaction.createNewVocabularyTerm("ABC"); term.setLabel("abc"); term.setDescription("Hello abc"); - transaction.addVocabularyTermTo(voca, term); + voca.addTerm(term); transaction.commit(); assertEquals("[abc [ABC]]", newTermsMatcher.recordedObject().toString()); @@ -585,7 +585,7 @@ public class MasterDataRegistrationTransactionTest extends AssertJUnit term2.setLabel("Beta"); term2.setDescription("Hello B"); term2.setOrdinal(1L); - transaction.addVocabularyTermTo(voca, term2); + voca.addTerm(term2); transaction.commit(); NewVocabulary newVoca = newVocaMatcher.recordedObject(); @@ -652,6 +652,7 @@ public class MasterDataRegistrationTransactionTest extends AssertJUnit context.assertIsSatisfied(); } + @SuppressWarnings("unchecked") @Test public void testAddVocabularyTermsFailed() { @@ -667,8 +668,8 @@ public class MasterDataRegistrationTransactionTest extends AssertJUnit }); IVocabulary voca = transaction.getOrCreateNewVocabulary(KNOWN); - transaction.addVocabularyTermTo(voca, transaction.createNewVocabularyTerm("ABC")); - transaction.addVocabularyTermTo(voca, transaction.createNewVocabularyTerm("Delta")); + voca.addTerm(transaction.createNewVocabularyTerm("ABC")); + voca.addTerm(transaction.createNewVocabularyTerm("Delta")); transaction.commit(); assertEquals("Failed to register new terms [ABC, DELTA]: Oohps!", transaction diff --git a/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py b/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py index 43f0b50e81c77562790df479c96ccb34d1ba4623..143643faf0039d7027b0a123e46cd695c7183e23 100644 --- a/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py +++ b/rtd_phosphonetx/source/core-plugins/proteomics-optional/1/as/initialize-master-data.py @@ -30,6 +30,14 @@ file_type_ZIP.setDescription('A zipped package') vocabulary_TREATMENT_TYPE = tr.getVocabulary('TREATMENT_TYPE') +vocabulary_TREATMENT_TYPE.addTerm(vocabulary_term_TREATMENT_TYPE_PH) +vocabulary_term_TREATMENT_TYPE_PH = tr.createNewVocabularyTerm('PH') +vocabulary_term_TREATMENT_TYPE_PH.setDescription(None) +vocabulary_term_TREATMENT_TYPE_PH.setUrl(None) +vocabulary_term_TREATMENT_TYPE_PH.setLabel('ph') +vocabulary_term_TREATMENT_TYPE_PH.setOrdinal(1) +vocabulary_TREATMENT_TYPE.addTerm(vocabulary_term_TREATMENT_TYPE_PH) + exp_type_BIOLOGICAL_EXPERIMENT = tr.getOrCreateNewExperimentType('BIOLOGICAL_EXPERIMENT') exp_type_BIOLOGICAL_EXPERIMENT.setDescription('A biological experiment')