Extract message generator module
[dcaegen2/collectors/hv-ves.git] / hv-collector-ves-message-generator / src / main / kotlin / org / onap / dcae / collectors / veshv / ves / message / generator / api / MessageGenerator.kt
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.dcae.collectors.veshv.simulators.xnf.api
+package org.onap.dcae.collectors.veshv.ves.message.generator.api
 
 import org.onap.dcae.collectors.veshv.domain.PayloadWireFrameMessage
-import org.onap.dcae.collectors.veshv.simulators.xnf.config.MessageParameters
+import org.onap.dcae.collectors.veshv.ves.message.generator.config.MessageParameters
+import org.onap.dcae.collectors.veshv.ves.message.generator.impl.MessageGeneratorImpl
+import org.onap.dcae.collectors.veshv.ves.message.generator.impl.PayloadGenerator
+import org.onap.ves.VesEventV5
 import reactor.core.publisher.Flux
+import javax.json.JsonObject
 
 /**
  * @author Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
@@ -29,4 +33,12 @@ import reactor.core.publisher.Flux
  */
 interface MessageGenerator {
     fun createMessageFlux(messageParameters: MessageParameters): Flux<PayloadWireFrameMessage>
+    fun parseCommonHeader(json: JsonObject): VesEventV5.VesEvent.CommonEventHeader
+
+    companion object {
+        val INSTANCE: MessageGenerator by lazy {
+            MessageGeneratorImpl(PayloadGenerator())
+        }
+    }
 }
+