Skip to content
Snippets Groups Projects
Commit bc05bca5 authored by felmer's avatar felmer
Browse files

SSDM-4965: Introducing LinkDaraSetLocation. This is to allow to use...

SSDM-4965: Introducing LinkDaraSetLocation. This is to allow to use PathInfoDBOnlyHierarchicalContentFactory in HierarchicalContentProvider. This suppresses warning entries in DSS log. Otherwise functionality didn't changed.

SVN: 38055
parent 14b699ef
No related branches found
No related tags found
No related merge requests found
......@@ -40,12 +40,14 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.content.DssServiceRpcGenericF
import ch.systemsx.cisd.openbis.dss.generic.shared.content.IContentCache;
import ch.systemsx.cisd.openbis.dss.generic.shared.content.IDssServiceRpcGenericFactory;
import ch.systemsx.cisd.openbis.dss.generic.shared.content.PathInfoDBAwareHierarchicalContentFactory;
import ch.systemsx.cisd.openbis.dss.generic.shared.content.PathInfoDBOnlyHierarchicalContentFactory;
import ch.systemsx.cisd.openbis.dss.generic.shared.content.RemoteHierarchicalContent;
import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PathInfoDataSourceProvider;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalDataLocationNode;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocationNode;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LinkDataSetLocation;
/**
* The default implementation of {@link IHierarchicalContentProvider}.
......@@ -63,6 +65,8 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider
private IHierarchicalContentFactory hierarchicalContentFactory;
private IHierarchicalContentFactory hierarchicalContentFactoryForLinkedData;
private final ISessionTokenProvider sessionTokenProvider;
private final String dataStoreCode;
......@@ -313,22 +317,12 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider
datasetLocation.getDataSetCode());
}
};
return asContent(dataSetDirectory, onCloseAction);
}
@Override
public IHierarchicalContent asContent(File dataSetDirectory)
{
return getHierarchicalContentFactory().asHierarchicalContent(dataSetDirectory,
IDelegatedAction.DO_NOTHING);
}
public IHierarchicalContent asContent(File dataSetDirectory, IDelegatedAction onCloseAction)
{
IHierarchicalContentFactory contentFactory = datasetLocation instanceof LinkDataSetLocation ?
getHierarchicalContentFactoryForLinkedData() :
getHierarchicalContentFactory();
try
{
return getHierarchicalContentFactory().asHierarchicalContent(dataSetDirectory,
onCloseAction);
return contentFactory.asHierarchicalContent(dataSetDirectory, onCloseAction);
} catch (RuntimeException ex)
{
onCloseAction.execute();
......@@ -336,6 +330,13 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider
}
}
@Override
public IHierarchicalContent asContent(File dataSetDirectory)
{
return getHierarchicalContentFactory().asHierarchicalContent(dataSetDirectory,
IDelegatedAction.DO_NOTHING);
}
private IHierarchicalContentFactory getHierarchicalContentFactory()
{
if (hierarchicalContentFactory == null)
......@@ -345,4 +346,13 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider
return hierarchicalContentFactory;
}
private IHierarchicalContentFactory getHierarchicalContentFactoryForLinkedData()
{
if (hierarchicalContentFactoryForLinkedData == null)
{
hierarchicalContentFactoryForLinkedData = PathInfoDBOnlyHierarchicalContentFactory.create();
}
return hierarchicalContentFactoryForLinkedData;
}
}
......@@ -79,6 +79,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IContentCopy;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocationNode;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LinkDataSet;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LinkDataSetLocation;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PhysicalDataSet;
......@@ -1411,15 +1412,16 @@ public class DatasetLister extends AbstractLister implements IDatasetLister
DatasetLocationNode rootNode = null;
for (DatasetLocationNodeRecord record : records)
{
DatasetLocation location = new DatasetLocation();
location.setDatasetCode(record.code);
DatasetLocation location;
if (record.link_info == null)
{
location = new DatasetLocation();
location.setDataSetLocation(record.location);
} else
{
location.setDataSetLocation(record.code);
location = new LinkDataSetLocation();
}
location.setDatasetCode(record.code);
location.setDataStoreCode(record.data_store_code);
location.setDataStoreUrl(record.data_store_url);
location.setOrderInContainer(record.ordinal);
......
/*
* Copyright 2017 ETH Zuerich, SIS
*
* 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.basic.dto;
/**
*
*
* @author Franz-Josef Elmer
*/
public class LinkDataSetLocation extends DatasetLocation
{
private static final long serialVersionUID = 1L;
@Override
public void setDatasetCode(String datasetCode)
{
super.setDatasetCode(datasetCode);
setDataSetLocation(datasetCode);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment