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

multi species type is exported

parent e9ffb42c
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"
......@@ -14,6 +14,7 @@ import org.apache.log4j.Logger;
import org.sbml.jsbml.Model;
import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
import org.sbml.jsbml.ext.layout.Layout;
import org.sbml.jsbml.ext.multi.MultiModelPlugin;
import org.sbml.jsbml.ext.render.ColorDefinition;
import org.sbml.jsbml.ext.render.LocalRenderInformation;
import org.sbml.jsbml.ext.render.LocalStyle;
......@@ -151,6 +152,10 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s
return null;
}
protected MultiModelPlugin getMultiPlugin() {
return (MultiModelPlugin) sbmlModel.getExtension("multi");
}
protected lcsb.mapviewer.model.map.model.Model getMinervaModel() {
return minervaModel;
}
......
......@@ -6,6 +6,8 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph;
import org.sbml.jsbml.ext.layout.Layout;
import org.sbml.jsbml.ext.multi.MultiSpeciesPlugin;
import org.sbml.jsbml.ext.multi.MultiSpeciesType;
import org.sbml.jsbml.ext.render.LocalStyle;
import lcsb.mapviewer.converter.model.sbml.SbmlElementExporter;
......@@ -15,13 +17,13 @@ import lcsb.mapviewer.model.map.InconsistentModelException;
import lcsb.mapviewer.model.map.species.Species;
public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.jsbml.Species> {
/**
* Default class logger.
*/
@SuppressWarnings("unused")
private static Logger logger = Logger.getLogger(SbmlSpeciesExporter.class);
private SbmlCompartmentExporter compartmentExporter;
public SbmlSpeciesExporter(Layout layout,
......@@ -49,9 +51,20 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
if (element.getConstant() != null) {
result.setConstant(element.getConstant());
}
if (isExtensionEnabled(SbmlExtension.MULTI)) {
MultiSpeciesPlugin multiExtension = new MultiSpeciesPlugin(result);
multiExtension.setSpeciesType(getMultiSpeciesType(element));
result.addExtension("multi", multiExtension);
}
return result;
}
private String getMultiSpeciesType(Species element) {
MultiSpeciesType speciesType = getMultiPlugin()
.getSpeciesType("minerva_species_type_" + element.getClass().getSimpleName());
return speciesType.getId();
}
@Override
protected AbstractReferenceGlyph createElementGlyph(String sbmlElementId, String glyphId) {
AbstractReferenceGlyph speciesGlyph = getLayout().createSpeciesGlyph(glyphId, sbmlElementId);
......
......@@ -21,6 +21,7 @@ import org.junit.Test;
import org.reflections.Reflections;
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.ext.multi.MultiModelPlugin;
import org.sbml.jsbml.ext.multi.MultiSpeciesPlugin;
import org.sbml.jsbml.ext.multi.MultiSpeciesType;
import org.sbml.jsbml.ext.multi.PossibleSpeciesFeatureValue;
import org.sbml.jsbml.ext.multi.SpeciesFeatureType;
......@@ -537,4 +538,35 @@ public class SbmlExporterTest {
}
}
@Test
public void testMultiExtensionTypeDefinition() throws Exception {
String structuralState = "xxx";
Model model = createEmptyModel();
GenericProtein element = new GenericProtein("id");
element.setName("test name");
element.setX(10);
element.setWidth(10);
element.setY(10);
element.setHeight(10);
element.setStructuralState(structuralState);
model.addElement(element);
org.sbml.jsbml.Model sbmlModel = exporter.toSbmlDocument(model).getModel();
MultiModelPlugin multiPlugin = (MultiModelPlugin) sbmlModel.getExtension("multi");
org.sbml.jsbml.Species sbmlSpecies = sbmlModel.getSpecies(0);
MultiSpeciesPlugin speciesExtension = (MultiSpeciesPlugin) sbmlSpecies.getExtension("multi");
assertNotNull("Multi extension not defined for species", speciesExtension);
String speciesTypeString = speciesExtension.getSpeciesType();
MultiSpeciesType speciesType = null;
for (MultiSpeciesType type : multiPlugin.getListOfSpeciesTypes()) {
if (type.getId().equals(speciesTypeString)) {
speciesType = type;
}
}
assertNotNull("Species type is not set in multi extension", speciesType);
}
}
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