summaryrefslogtreecommitdiffstats
path: root/datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java')
-rw-r--r--datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java b/datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java
new file mode 100644
index 0000000..77b3877
--- /dev/null
+++ b/datacollector/src/main/java/org/onap/rapp/datacollector/service/ParserFactory.java
@@ -0,0 +1,43 @@
+package org.onap.rapp.datacollector.service;
+
+import java.util.List;
+
+import org.onap.rapp.datacollector.entity.ves.Event;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+
+/**
+ * Factory which decided what parser to use to deserialize json event coming from PM Mapper Supported are FileReadyEvent and VES event
+ */
+@Service
+public class ParserFactory extends ParserAbstractClass {
+
+ private static final Logger logger = LoggerFactory.getLogger(ParserFactory.class);
+ private final VesParserImpl vesParser;
+ private final FileReadyParserImpl fileReadyParser;
+
+ public ParserFactory(VesParserImpl vesParser, FileReadyParserImpl fileReadyParser) {
+ this.vesParser = vesParser;
+ this.fileReadyParser = fileReadyParser;
+ }
+
+ public List<Event> getParsedEvents(String eventString) {
+ JsonObject json = gson.fromJson(eventString, JsonObject.class);
+ if (isFileReadyEvent(json)) {
+ return fileReadyParser.parse(eventString);
+ } else if (isVesEvent(json)) {
+ return vesParser.parse(eventString);
+ } else {
+ logger.error("Not supported event structure {}", eventString);
+ throw new JsonParseException("Not supported event structure");
+ }
+ }
+
+ private final Gson gson = new GsonBuilder().create();
+}