Skip to content
Snippets Groups Projects
Commit 3724bc1a authored by Piotr Gawron's avatar Piotr Gawron
Browse files

export import of element symbol property added

parent e4fb0167
No related branches found
No related tags found
2 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!560Resolve "add support for modifications and states in sbml export/import"
...@@ -12,8 +12,11 @@ public enum BioEntityFeature { ...@@ -12,8 +12,11 @@ public enum BioEntityFeature {
"minerva_position_to_compartment_"), "minerva_position_to_compartment_"),
SYNONYM("Synonym", null, new Class<?>[] { Element.class }, SYNONYM("Synonym", null, new Class<?>[] { Element.class },
"minerva_synonym_"); "minerva_synonym_"),
SYMBOL("Symbol", null, new Class<?>[] { Element.class },
"minerva_symbol_");
private String featureName; private String featureName;
private String defaultValue; private String defaultValue;
private Class<?>[] properClasses; private Class<?>[] properClasses;
......
...@@ -27,6 +27,8 @@ public final class MultiPackageNamingUtils { ...@@ -27,6 +27,8 @@ public final class MultiPackageNamingUtils {
private static final String MINERVA_MODIFICATION_TYPE_PREFIX = "minerva_modification_type_"; private static final String MINERVA_MODIFICATION_TYPE_PREFIX = "minerva_modification_type_";
public static final String NULL_REPRESENTATION = "NULL";
/** /**
* Returns id of the {@link MultiSpeciesType} for a given minerva class. * Returns id of the {@link MultiSpeciesType} for a given minerva class.
* *
......
...@@ -99,6 +99,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j ...@@ -99,6 +99,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
assignPostionToCompartmentToMulti(element, multiExtension, speciesType); assignPostionToCompartmentToMulti(element, multiExtension, speciesType);
assignElementModificationResiduesToMulti(element, multiExtension, speciesType); assignElementModificationResiduesToMulti(element, multiExtension, speciesType);
assignListOfSynonymsToMulti(element, multiExtension, speciesType); assignListOfSynonymsToMulti(element, multiExtension, speciesType);
assignSymbolToMulti(element, multiExtension, speciesType);
} }
private void assignElementModificationResiduesToMulti(Species element, MultiSpeciesPlugin multiExtension, private void assignElementModificationResiduesToMulti(Species element, MultiSpeciesPlugin multiExtension,
...@@ -241,16 +242,16 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j ...@@ -241,16 +242,16 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
private PossibleSpeciesFeatureValue getPosibleFeatureIdByName(String featureValueName, private PossibleSpeciesFeatureValue getPosibleFeatureIdByName(String featureValueName,
SpeciesFeatureType speciesFeature) { SpeciesFeatureType speciesFeature) {
PossibleSpeciesFeatureValue structuralStateFeatureValue = null; PossibleSpeciesFeatureValue result = null;
for (PossibleSpeciesFeatureValue value : speciesFeature.getListOfPossibleSpeciesFeatureValues()) { for (PossibleSpeciesFeatureValue value : speciesFeature.getListOfPossibleSpeciesFeatureValues()) {
if (value.getName().equals(featureValueName)) { if (value.getName().equals(featureValueName)) {
structuralStateFeatureValue = value; result = value;
} }
} }
if (structuralStateFeatureValue == null) { if (result == null) {
structuralStateFeatureValue = addPosibleValueToFeature(speciesFeature, featureValueName); result = addPosibleValueToFeature(speciesFeature, featureValueName);
} }
return structuralStateFeatureValue; return result;
} }
private void assignPostionToCompartmentToMulti(Species element, MultiSpeciesPlugin multiExtension, private void assignPostionToCompartmentToMulti(Species element, MultiSpeciesPlugin multiExtension,
...@@ -269,6 +270,11 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j ...@@ -269,6 +270,11 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
} }
} }
private void assignSymbolToMulti(Species element, MultiSpeciesPlugin multiExtension,
MultiSpeciesType speciesType) {
assignValueToFeature(element, multiExtension, speciesType, element.getSymbol(), BioEntityFeature.SYMBOL);
}
private void assignValueToFeature(Species element, MultiSpeciesPlugin multiExtension, MultiSpeciesType speciesType, private void assignValueToFeature(Species element, MultiSpeciesPlugin multiExtension, MultiSpeciesType speciesType,
String value, BioEntityFeature feature) { String value, BioEntityFeature feature) {
SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType, feature); SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType, feature);
...@@ -370,6 +376,10 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j ...@@ -370,6 +376,10 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
} }
private PossibleSpeciesFeatureValue addPosibleValueToFeature(SpeciesFeatureType feature, String value) { private PossibleSpeciesFeatureValue addPosibleValueToFeature(SpeciesFeatureType feature, String value) {
if (value == null) {
value = MultiPackageNamingUtils.NULL_REPRESENTATION;
}
PossibleSpeciesFeatureValue result = null; PossibleSpeciesFeatureValue result = null;
for (PossibleSpeciesFeatureValue existingValue : feature.getListOfPossibleSpeciesFeatureValues()) { for (PossibleSpeciesFeatureValue existingValue : feature.getListOfPossibleSpeciesFeatureValues()) {
if (existingValue.getName().equals(value)) { if (existingValue.getName().equals(value)) {
......
...@@ -139,12 +139,18 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> ...@@ -139,12 +139,18 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
} }
} else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.POSITION_TO_COMPARTMENT)) { } else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.POSITION_TO_COMPARTMENT)) {
if (featureValues.size() != 1) { if (featureValues.size() != 1) {
logger.warn(warnPrefix + "Position to compartment must exactly one value"); logger.warn(warnPrefix + "Position to compartment must have exactly one value");
} else { } else {
minervaElement.setPositionToCompartment(PositionToCompartment.getByString(featureValues.get(0))); minervaElement.setPositionToCompartment(PositionToCompartment.getByString(featureValues.get(0)));
} }
} else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.SYNONYM)) { } else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.SYNONYM)) {
minervaElement.setSynonyms(featureValues); minervaElement.setSynonyms(featureValues);
} else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.SYMBOL)) {
if (featureValues.size() != 1) {
logger.warn(warnPrefix + "Symbol must have exactly one value");
} else {
minervaElement.setSymbol(featureValues.get(0));
}
} else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) { } else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) {
createModificationResidues(minervaElement, speciesType, feature); createModificationResidues(minervaElement, speciesType, feature);
} else { } else {
...@@ -160,7 +166,11 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> ...@@ -160,7 +166,11 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
for (SpeciesFeatureValue featureValue : feature.getListOfSpeciesFeatureValues()) { for (SpeciesFeatureValue featureValue : feature.getListOfSpeciesFeatureValues()) {
PossibleSpeciesFeatureValue possibleSpeciesFeatureValue = featureType.getListOfPossibleSpeciesFeatureValues() PossibleSpeciesFeatureValue possibleSpeciesFeatureValue = featureType.getListOfPossibleSpeciesFeatureValues()
.get(featureValue.getValue()); .get(featureValue.getValue());
result.add(possibleSpeciesFeatureValue.getName()); if (possibleSpeciesFeatureValue.getName().equals(MultiPackageNamingUtils.NULL_REPRESENTATION)) {
result.add(null);
} else {
result.add(possibleSpeciesFeatureValue.getName());
}
} }
} else { } else {
for (SpeciesTypeInstance speciesTypeInstance : speciesType.getListOfSpeciesTypeInstances()) { for (SpeciesTypeInstance speciesTypeInstance : speciesType.getListOfSpeciesTypeInstances()) {
......
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