From a5e94bc1f0922864c8f9e0466069464ae52e2d34 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 27 Jan 2010 08:41:27 +0000 Subject: [PATCH] SE-191 Refactoring: introducing DataStoreServiceTranslator SVN: 14477 --- .../openbis/generic/server/CommonServer.java | 26 +------- .../DataStoreServiceTranslator.java | 60 +++++++++++++++++++ 2 files changed, 62 insertions(+), 24 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 9e641ccef37..31827618e48 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -163,6 +163,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; import ch.systemsx.cisd.openbis.generic.shared.translator.AttachmentTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.AuthorizationGroupTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.DataSetTypeTranslator; +import ch.systemsx.cisd.openbis.generic.shared.translator.DataStoreServiceTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.DtoConverters; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; @@ -1593,36 +1594,13 @@ public final class CommonServer extends AbstractCommonServer<ICommonServer> impl { if (service.getKind() == dataStoreServiceKind) { - result.add(convert(service)); + result.add(DataStoreServiceTranslator.translate(service)); } } Collections.sort(result); return result; } - private static DatastoreServiceDescription convert(DataStoreServicePE service) - { - String[] datasetTypeCodes = extractCodes(service.getDatasetTypes()); - String dssCode = service.getDataStore().getCode(); - DatastoreServiceDescription dssDescription = - new DatastoreServiceDescription(service.getKey(), service.getLabel(), - datasetTypeCodes, dssCode); - dssDescription.setDownloadURL(service.getDataStore().getDownloadUrl()); - return dssDescription; - } - - private static String[] extractCodes(Set<DataSetTypePE> datasetTypes) - { - String[] codes = new String[datasetTypes.size()]; - int i = 0; - for (DataSetTypePE datasetType : datasetTypes) - { - codes[i] = datasetType.getCode(); - i++; - } - return codes; - } - public TableModel createReportFromDatasets(String sessionToken, DatastoreServiceDescription serviceDescription, List<String> datasetCodes) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java new file mode 100644 index 00000000000..cac64364708 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreServiceTranslator.java @@ -0,0 +1,60 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.shared.translator; + +import java.util.Set; + +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServicePE; + +/** + * Translator for {@link DataStoreServicePE} into {@link DatastoreServiceDescription}. + * + * @author Franz-Josef Elmer + */ +public class DataStoreServiceTranslator +{ + public static DatastoreServiceDescription translate(DataStoreServicePE service) + { + String[] datasetTypeCodes = extractCodes(service.getDatasetTypes()); + String dssCode = service.getDataStore().getCode(); + DatastoreServiceDescription dssDescription = + new DatastoreServiceDescription(service.getKey(), service.getLabel(), + datasetTypeCodes, dssCode); + dssDescription.setDownloadURL(service.getDataStore().getDownloadUrl()); + return dssDescription; + } + + private static String[] extractCodes(Set<DataSetTypePE> datasetTypes) + { + String[] codes = new String[datasetTypes.size()]; + int i = 0; + for (DataSetTypePE datasetType : datasetTypes) + { + codes[i] = datasetType.getCode(); + i++; + } + return codes; + } + + + private DataStoreServiceTranslator() + { + } + +} -- GitLab