diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index 8a89f8046b1a842f68ce779eee6fa26496cfa1db..881dcc96258d107f522f94fad8b9e110a1f88d28 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -144,6 +144,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SourceType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationResult; @@ -211,6 +212,7 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SimpleDataSetHelper; import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTermTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTranslator; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; /** @@ -1195,6 +1197,23 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements return VocabularyTermTranslator.translateTerms(vocabularyOrNull.getTerms()); } + @Override + @RolesAllowed(RoleWithHierarchy.SPACE_ETL_SERVER) + public Vocabulary tryGetVocabulary(String sessionToken, String vocabularyCode) + { + checkSession(sessionToken); + VocabularyPE vocabularyOrNull = + getDAOFactory().getVocabularyDAO().tryFindVocabularyByCode(vocabularyCode); + + if (vocabularyOrNull == null) + { + return null; + } else + { + return VocabularyTranslator.translate(vocabularyOrNull, true); + } + } + @Override @RolesAllowed(RoleWithHierarchy.SPACE_ETL_SERVER) public List<String> generateCodes(String sessionToken, String prefix, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java index bd949acf6eccd49da50ccea3a67a88f7d55c9704..dfad8b9039060a65e973c337234a00942543fea3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLServiceLogger.java @@ -57,6 +57,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationResult; @@ -683,4 +684,11 @@ public class ETLServiceLogger extends AbstractServerLogger implements IETLLIMSSe return null; } + @Override + public Vocabulary tryGetVocabulary(String token, String code) + { + logAccess(Level.DEBUG, token, "tryGetVocabulary", "CODE(%s)", code); + return null; + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java index 25f65522692c484586d8da282456f33c305926f0..9019da138ff898cdb3559c94a16fd90aa6acdd4e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java @@ -22,9 +22,9 @@ import java.util.List; import org.springframework.transaction.annotation.Transactional; +import ch.systemsx.cisd.common.exception.UserFailureException; import ch.systemsx.cisd.openbis.common.conversation.annotation.Conversational; import ch.systemsx.cisd.openbis.common.conversation.annotation.Progress; -import ch.systemsx.cisd.common.exception.UserFailureException; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.EntityOperationsState; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -55,6 +55,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationDetails; import ch.systemsx.cisd.openbis.generic.shared.dto.AtomicEntityOperationResult; @@ -145,6 +146,12 @@ public interface IETLLIMSService extends IServer, ISessionProvider public Collection<VocabularyTerm> listVocabularyTerms(String sessionToken, String vocabulary) throws UserFailureException; + /** + * Returns a vocabulary with given code + */ + @Transactional(readOnly = true) + public Vocabulary tryGetVocabulary(String sessionToken, String code); + /** * Returns the SampleType together with assigned property types for specified sample type code. */ diff --git a/openbis/sourceTest/sql/postgresql/124/006=controlled_vocabulary_terms.tsv b/openbis/sourceTest/sql/postgresql/124/006=controlled_vocabulary_terms.tsv index b641efc719ccd5b6954f6485c788460821159f85..3e3cb6e1703502b8f3d0a347687003f65e331ce4 100644 --- a/openbis/sourceTest/sql/postgresql/124/006=controlled_vocabulary_terms.tsv +++ b/openbis/sourceTest/sql/postgresql/124/006=controlled_vocabulary_terms.tsv @@ -3,11 +3,11 @@ 3 1536_WELLS_32X48 2008-11-05 09:18:00.622+01 1 1 \N \N 3 t 4 PROPRIETARY 2008-11-05 09:18:00.622+01 2 1 \N \N 1 t 5 BDS_DIRECTORY 2008-11-05 09:18:00.622+01 2 1 \N \N 2 t -6 RAT 2008-11-05 09:18:30.327+01 3 2 \N \N 1 t -7 DOG 2008-11-05 09:18:30.327+01 3 2 \N \N 2 t -8 HUMAN 2008-11-05 09:18:30.327+01 3 2 \N \N 3 t -9 GORILLA 2008-11-05 09:18:30.327+01 3 2 \N \N 4 t -10 FLY 2008-11-05 09:18:30.327+01 3 2 \N \N 5 t +6 RAT 2008-11-05 09:18:30.327+01 3 2 \N the rat 1 t +7 DOG 2008-11-05 09:18:30.327+01 3 2 \N doggy 2 t +8 HUMAN 2008-11-05 09:18:30.327+01 3 2 \N a human 3 t +9 GORILLA 2008-11-05 09:18:30.327+01 3 2 \N a gorilla is a gorilla 4 t +10 FLY 2008-11-05 09:18:30.327+01 3 2 \N a fly flies 5 t 11 MALE 2008-11-05 09:18:30.421+01 4 2 \N \N 1 t 12 FEMALE 2008-11-05 09:18:30.421+01 4 2 \N \N 2 t 13 MAN 2008-11-05 09:18:30.983+01 5 2 \N \N 1 t