Skip to content
Snippets Groups Projects
Commit 53785a34 authored by juanf's avatar juanf
Browse files

SSDM-13343 : Attempt to have versioning for property assignments

parent 2b0e1945
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
......@@ -28,6 +28,7 @@ import ch.systemsx.cisd.common.logging.LogFactory;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
......@@ -45,7 +46,9 @@ public class XLSImport
private final String xlsName;
private final Map<String, Integer> versions;
private final Map<String, Integer> beforeVersions;
private final Map<String, Integer> afterVersions;
private final VocabularyImportHelper vocabularyHelper;
......@@ -82,21 +85,22 @@ public class XLSImport
this.api = api;
this.options = options;
this.xlsName = xlsName;
this.versions = VersionInfoHandler.loadVersions(options, xlsName);
this.dbChecker = new DatabaseConsistencyChecker(this.sessionToken, this.api, this.versions);
this.beforeVersions = Collections.unmodifiableMap(VersionInfoHandler.loadVersions(options, xlsName));
this.afterVersions = VersionInfoHandler.loadVersions(options, xlsName);
this.dbChecker = new DatabaseConsistencyChecker(this.sessionToken, this.api, this.afterVersions);
this.delayedExecutor = new DelayedExecutionDecorator(this.sessionToken, this.api);
this.vocabularyHelper = new VocabularyImportHelper(this.delayedExecutor, mode, options, versions);
this.vocabularyTermHelper = new VocabularyTermImportHelper(this.delayedExecutor, mode, options, versions);
this.sampleTypeHelper = new SampleTypeImportHelper(this.delayedExecutor, mode, options, versions);
this.experimentTypeHelper = new ExperimentTypeImportHelper(this.delayedExecutor, mode, options, versions);
this.datasetTypeHelper = new DatasetTypeImportHelper(this.delayedExecutor, mode, options, versions);
this.vocabularyHelper = new VocabularyImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.vocabularyTermHelper = new VocabularyTermImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.sampleTypeHelper = new SampleTypeImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.experimentTypeHelper = new ExperimentTypeImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.datasetTypeHelper = new DatasetTypeImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.spaceHelper = new SpaceImportHelper(this.delayedExecutor, mode, options);
this.projectHelper = new ProjectImportHelper(this.delayedExecutor, mode, options);
this.experimentHelper = new ExperimentImportHelper(this.delayedExecutor, mode, options);
this.sampleHelper = new SampleImportHelper(this.delayedExecutor, mode, options);
this.propertyHelper = new PropertyTypeImportHelper(this.delayedExecutor, mode, options, versions);
this.propertyAssignmentHelper = new PropertyAssignmentImportHelper(this.delayedExecutor, mode, options);
this.propertyHelper = new PropertyTypeImportHelper(this.delayedExecutor, mode, options, afterVersions);
this.propertyAssignmentHelper = new PropertyAssignmentImportHelper(this.delayedExecutor, mode, options, beforeVersions);
this.scriptHelper = new ScriptImportHelper(this.delayedExecutor, mode, options, scripts);
this.semanticAnnotationImportHelper = new SemanticAnnotationImportHelper(this.delayedExecutor, mode, options);
}
......@@ -211,7 +215,7 @@ public class XLSImport
this.delayedExecutor.hasFinished();
VersionInfoHandler.writeVersions(options, xlsName, versions);
VersionInfoHandler.writeVersions(options, xlsName, afterVersions);
return new ArrayList<>(this.delayedExecutor.getIds());
}
......
......@@ -27,6 +27,7 @@ import ch.ethz.sis.openbis.generic.server.xls.importer.enums.ImportTypes;
import ch.ethz.sis.openbis.generic.server.xls.importer.utils.AttributeValidator;
import ch.ethz.sis.openbis.generic.server.xls.importer.utils.IAttribute;
import ch.ethz.sis.openbis.generic.server.xls.importer.utils.ImportUtils;
import ch.ethz.sis.openbis.generic.server.xls.importer.utils.VersionUtils;
import java.util.ArrayList;
import java.util.HashSet;
......@@ -78,15 +79,21 @@ public class PropertyAssignmentImportHelper extends BasicImportHelper
private Set<String> existingCodes;
Map<String, Integer> beforeVersions;
private EntityTypePermId permId;
private AttributeValidator<Attribute> attributeValidator;
public PropertyAssignmentImportHelper(DelayedExecutionDecorator delayedExecutor, ImportModes mode, ImportOptions options)
public PropertyAssignmentImportHelper(DelayedExecutionDecorator delayedExecutor,
ImportModes mode,
ImportOptions options,
Map<String, Integer> beforeVersions)
{
super(mode, options);
this.delayedExecutor = delayedExecutor;
this.attributeValidator = new AttributeValidator<>(Attribute.class);
this.beforeVersions = beforeVersions;
}
@Override protected ImportTypes getTypeName()
......@@ -94,6 +101,14 @@ public class PropertyAssignmentImportHelper extends BasicImportHelper
return ImportTypes.PROPERTY_TYPE;
}
@Override protected boolean isNewVersion(Map<String, Integer> header, List<String> values)
{
String newVersion = getValueByColumnName(header, values, PropertyAssignmentImportHelper.Attribute.Version);
String code = getValueByColumnName(header, values, PropertyAssignmentImportHelper.Attribute.Code);
return VersionUtils.isNewVersion(newVersion, VersionUtils.getStoredVersion(beforeVersions, ImportTypes.PROPERTY_TYPE.getType(), code));
}
@Override protected boolean isObjectExist(Map<String, Integer> header, List<String> values)
{
return false;
......
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