MessageBroker.java 884 B

123456789101112131415161718192021222324
  1. package cz.senslog.watchdog.messagebroker;
  2. import cz.senslog.watchdog.config.EmailMessageBrokerConfig;
  3. import cz.senslog.watchdog.config.MessageBrokerConfig;
  4. import cz.senslog.watchdog.config.MessageBrokerType;
  5. import cz.senslog.watchdog.domain.Report;
  6. import cz.senslog.watchdog.messagebroker.email.EmailMessageBroker;
  7. public interface MessageBroker {
  8. static MessageBroker create(MessageBrokerConfig config) {
  9. switch (config.getType()) {
  10. case EMAIL: return new EmailMessageBroker((EmailMessageBrokerConfig) config);
  11. case CONSOLE: return new ConsoleMessageBroker();
  12. default: throw new RuntimeException(String.format(
  13. "The message broker '%s' is not implemented yet.", config.getType())
  14. );
  15. }
  16. }
  17. void send(Report report, MessageBrokerHandler status);
  18. MessageBrokerType getType();
  19. }