package us.b3k.kafka.ws.producer; import us.b3k.kafka.ws.transforms.Transform; import java.util.Properties; public class KafkaWebsocketProducerFactory { private final Properties configProps; private final Transform inputTransform; private KafkaWebsocketProducer producer; static public KafkaWebsocketProducerFactory create(Properties configProps, Class inputTransformClass) throws IllegalAccessException, InstantiationException { Transform inputTransform = (Transform)inputTransformClass.newInstance(); inputTransform.initialize(); return new KafkaWebsocketProducerFactory(configProps, inputTransform); } private KafkaWebsocketProducerFactory(Properties configProps, Transform inputTransform) { this.configProps = configProps; this.inputTransform = inputTransform; } public KafkaWebsocketProducer getProducer() { if (producer == null) { producer = new KafkaWebsocketProducer(configProps, inputTransform); producer.start(); } return producer; } }