From 387d759759311b27097345ef57caf7d6e69f33c4 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 11 Jan 2018 13:11:59 +0100 Subject: [PATCH] sbml parser is available via rest API --- converter-sbml/pom.xml | 41 +++++++++++-------- .../converter/model/sbml/SbmlParser.java | 2 +- model-command/pom.xml | 1 - rest-api/pom.xml | 6 +++ .../java/lcsb/mapviewer/api/BaseRestImpl.java | 22 ++++++---- .../configuration/ConfigurationRestImpl.java | 9 ++-- 6 files changed, 48 insertions(+), 33 deletions(-) diff --git a/converter-sbml/pom.xml b/converter-sbml/pom.xml index 6fc10f0b45..278f035aad 100644 --- a/converter-sbml/pom.xml +++ b/converter-sbml/pom.xml @@ -16,16 +16,20 @@ </properties> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.3</version> - <configuration> - <excludes> - <exclude>**/log4j.properties</exclude> - </excludes> - </configuration> - </plugin> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.3</version> + <configuration> + <excludes> + <exclude>**/log4j.properties</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> <dependencies> @@ -37,7 +41,16 @@ <artifactId>model</artifactId> <version>1.0</version> </dependency> - + <dependency> + <groupId>lcsb.mapviewer</groupId> + <artifactId>model-command</artifactId> + <version>1.0</version> + </dependency> + <dependency> + <groupId>lcsb.mapviewer</groupId> + <artifactId>converter-CellDesigner</artifactId> + <version>1.0</version> + </dependency> <dependency> <groupId>lcsb.mapviewer</groupId> <artifactId>converter</artifactId> @@ -72,12 +85,6 @@ <version>1.0</version> <scope>test</scope> </dependency> - <dependency> - <groupId>lcsb.mapviewer</groupId> - <artifactId>converter-CellDesigner</artifactId> - <version>1.0</version> - <scope>test</scope> - </dependency> </dependencies> </project> diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java index b72c589162..938ad9a799 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java @@ -231,7 +231,7 @@ public class SbmlParser implements IConverter { fileWriter.write(exportedString); fileWriter.flush(); fileWriter.close(); - return null; + return file; } @Override diff --git a/model-command/pom.xml b/model-command/pom.xml index d827b05db5..5d559371b4 100644 --- a/model-command/pom.xml +++ b/model-command/pom.xml @@ -25,7 +25,6 @@ <groupId>lcsb.mapviewer</groupId> <artifactId>converter-CellDesigner</artifactId> <version>1.0</version> - <scope>test</scope> </dependency> <dependency> diff --git a/rest-api/pom.xml b/rest-api/pom.xml index 43e369a82a..a25a71c338 100644 --- a/rest-api/pom.xml +++ b/rest-api/pom.xml @@ -26,6 +26,12 @@ <version>1.0</version> </dependency> + <dependency> + <groupId>lcsb.mapviewer</groupId> + <artifactId>converter-sbml</artifactId> + <version>1.0</version> + </dependency> + <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java index 0f82683334..d0dc1002f7 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -21,6 +21,7 @@ import lcsb.mapviewer.common.exception.InvalidStateException; import lcsb.mapviewer.converter.IConverter; import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; import lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter; +import lcsb.mapviewer.converter.model.sbml.SbmlParser; import lcsb.mapviewer.model.map.BioEntity; import lcsb.mapviewer.model.map.MiriamData; import lcsb.mapviewer.model.map.MiriamType; @@ -287,15 +288,20 @@ public abstract class BaseRestImpl { } protected IConverter getModelParser(String handlerClass) throws QueryException { - IConverter parser; - if (SbgnmlXmlConverter.class.getCanonicalName().equals(handlerClass)) { - parser = new SbgnmlXmlConverter(); - } else if (CellDesignerXmlParser.class.getCanonicalName().equals(handlerClass)) { - parser = new CellDesignerXmlParser(); - } else { - throw new QueryException("Unknown handlerClass: " + handlerClass); + for (IConverter converter : getModelConverters()) { + if (converter.getClass().getCanonicalName().equals(handlerClass)) { + return converter; + } } - return parser; + throw new QueryException("Unknown handlerClass: " + handlerClass); + } + + protected List<IConverter> getModelConverters() { + List<IConverter> result = new ArrayList<>(); + result.add(new CellDesignerXmlParser()); + result.add(new SbgnmlXmlConverter()); + result.add(new SbmlParser()); + return result; } protected String getFirstValue(List<Object> list) { diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java index e6a8df1e5c..7c41b7d650 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/configuration/ConfigurationRestImpl.java @@ -16,12 +16,11 @@ import org.springframework.transaction.annotation.Transactional; import lcsb.mapviewer.annotation.services.ModelAnnotator; import lcsb.mapviewer.annotation.services.annotators.ElementAnnotator; +import lcsb.mapviewer.api.BaseRestImpl; import lcsb.mapviewer.common.Pair; import lcsb.mapviewer.converter.IConverter; import lcsb.mapviewer.converter.graphics.AbstractImageGenerator; import lcsb.mapviewer.converter.graphics.ImageGenerators; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter; import lcsb.mapviewer.model.map.MiriamType; import lcsb.mapviewer.model.map.model.SubmodelType; import lcsb.mapviewer.model.map.reaction.Reaction; @@ -38,7 +37,7 @@ import lcsb.mapviewer.services.utils.data.ColorSchemaType; import lcsb.mapviewer.services.view.ConfigurationView; @Transactional(value = "txManager") -public class ConfigurationRestImpl { +public class ConfigurationRestImpl extends BaseRestImpl { /** * Default class logger. */ @@ -113,9 +112,7 @@ public class ConfigurationRestImpl { public List<Map<String, Object>> getModelFormats(String token) throws SecurityException { userService.getToken(token); - List<IConverter> converters = new ArrayList<>(); - converters.add(new CellDesignerXmlParser()); - converters.add(new SbgnmlXmlConverter()); + List<IConverter> converters = getModelConverters(); List<Map<String, Object>> result = new ArrayList<>(); -- GitLab