From fdf3237e7afb8d6c20bb421c17e3c7780e97dfc5 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 2 Jan 2019 12:15:04 +0100 Subject: [PATCH] method to extract id of position to compartment feature extracted --- .../model/sbml/MultiPackageNamingUtils.java | 13 +++++++++++++ .../converter/model/sbml/SbmlExporter.java | 15 +++++++-------- .../model/sbml/species/SbmlSpeciesExporter.java | 2 +- .../model/sbml/species/SbmlSpeciesParser.java | 4 ++-- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/MultiPackageNamingUtils.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/MultiPackageNamingUtils.java index dc9d228f58..c2905e08ce 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/MultiPackageNamingUtils.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/MultiPackageNamingUtils.java @@ -14,6 +14,7 @@ import lcsb.mapviewer.model.map.species.Species; */ public final class MultiPackageNamingUtils { + private static final String MINERVA_POSITION_TO_COMPARTMENT_PREFIX = "minerva_position_to_compartment_"; private static final String MINERVA_STRUCTURAL_STATE_PREFIX = "minerva_structural_state_"; /** @@ -52,4 +53,16 @@ public final class MultiPackageNamingUtils { return featureTypeId.startsWith(MINERVA_STRUCTURAL_STATE_PREFIX); } + public static final String getPositionToCompartmentFeatureId(Class<?> speciesClass) { + return MINERVA_POSITION_TO_COMPARTMENT_PREFIX + speciesClass.getSimpleName(); + } + + public static String getPositionToCompartmentFeatureId(Species element) { + return getPositionToCompartmentFeatureId(element.getClass()); + } + + public static boolean isPositionToCompartmentFeatureId(String featureTypeId) { + return featureTypeId.startsWith(MINERVA_POSITION_TO_COMPARTMENT_PREFIX); + } + } diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java index 9021a01c5f..247453556b 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlExporter.java @@ -37,7 +37,6 @@ import lcsb.mapviewer.model.map.species.Complex; import lcsb.mapviewer.model.map.species.Element; import lcsb.mapviewer.model.map.species.Protein; import lcsb.mapviewer.model.map.species.Species; -import lcsb.mapviewer.model.map.species.field.PositionToCompartment; import lcsb.mapviewer.modelutils.map.ElementUtils; public class SbmlExporter { @@ -125,7 +124,7 @@ public class SbmlExporter { MultiSpeciesType speciesType = speciesTypeByClass.get(species.getClass()); addStructuralStateToPossibleValues(speciesType, species); if (species instanceof Species) { - addPositionToCompartmentToPossibleValues(speciesType, ((Species) species).getPositionToCompartment()); + addPositionToCompartmentToPossibleValues(speciesType, ((Species) species)); } } @@ -146,11 +145,11 @@ public class SbmlExporter { } - private void addPositionToCompartmentToPossibleValues(MultiSpeciesType speciesType, PositionToCompartment position) { - SpeciesFeatureType feature = speciesType.getListOfSpeciesFeatureTypes() - .get("minerva_position_to_compartment_" + speciesType.getName()); - if (position != null) { - addPosibleValueToFeature(feature, position.name()); + private void addPositionToCompartmentToPossibleValues(MultiSpeciesType speciesType, Species species) { + if (species.getPositionToCompartment() != null) { + SpeciesFeatureType feature = speciesType.getListOfSpeciesFeatureTypes() + .get(MultiPackageNamingUtils.getPositionToCompartmentFeatureId(species)); + addPosibleValueToFeature(feature, species.getPositionToCompartment().name()); } } @@ -227,7 +226,7 @@ public class SbmlExporter { private void createPositionToCompartmentFeature(Class<? extends Element> clazz, MultiSpeciesType speciesType) { SpeciesFeatureType feature = new SpeciesFeatureType(); feature.setName("Position to compartment"); - feature.setId("minerva_position_to_compartment_" + clazz.getSimpleName()); + feature.setId(MultiPackageNamingUtils.getPositionToCompartmentFeatureId(clazz)); addPosibleValueToFeature(feature, "undefined"); speciesType.getListOfSpeciesFeatureTypes().add(feature); } diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java index 95ad7b4221..dd6773fba2 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java @@ -112,7 +112,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j positionToCompartmentName = element.getPositionToCompartment().name(); } SpeciesFeatureType structuralStateFeature = speciesType - .getSpeciesFeatureType("minerva_position_to_compartment_" + element.getClass().getSimpleName()); + .getSpeciesFeatureType(MultiPackageNamingUtils.getPositionToCompartmentFeatureId(element)); PossibleSpeciesFeatureValue structuralStateFeatureValue = null; for (PossibleSpeciesFeatureValue value : structuralStateFeature.getListOfPossibleSpeciesFeatureValues()) { if (value.getName().equals(positionToCompartmentName)) { diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java index a691c8b681..1c184c1671 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java @@ -126,8 +126,8 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> } else { logger.warn(warnPrefix + "Invalid structural state for class " + featureTypeString); } - } else if (featureTypeString.startsWith("minerva_position_to_compartment_")) { - if (featureTypeString.equals("minerva_position_to_compartment_" + minervaElement.getClass().getSimpleName())) { + } else if (MultiPackageNamingUtils.isPositionToCompartmentFeatureId(featureTypeString)) { + if (featureTypeString.equals(MultiPackageNamingUtils.getPositionToCompartmentFeatureId(minervaElement))) { SpeciesFeatureType featureType = speciesType.getListOfSpeciesFeatureTypes().get(featureTypeString); List<String> positionToCompartments = new ArrayList<>(); -- GitLab