All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vertx.mods.Format Maven / Gradle / Ivy

package org.vertx.mods;

import org.vertx.java.core.Handler;
import org.vertx.java.core.eventbus.EventBus;
import org.vertx.java.core.eventbus.Message;
import org.vertx.java.core.json.JsonObject;

/** @author Julien Viet */
public enum Format {

  JSON() {

    @Override
    public void publish(EventBus bus, String address, String value) {
      JsonObject json = VertxCommand.parseJson(value);
      bus.publish(address, json);
    }

    @Override
    public void send(EventBus bus, String address, String value, final Handler> replyHandler) {
      JsonObject json = VertxCommand.parseJson(value);
      if (replyHandler != null) {
        bus.send(address, json, new Handler>() {
          public void handle(Message event) {
            replyHandler.handle(event);
          }
        });
      } else {
        bus.send(address, json);
      }
    }
  },

  STRING() {

    @Override
    public void publish(EventBus bus, String address, String value) {
      bus.publish(address, value);
    }

    @Override
    public void send(EventBus bus, String address, String value, final Handler> replyHandler) {
      if (replyHandler != null) {
        bus.send(address, value, new Handler>() {
          public void handle(Message event) {
            replyHandler.handle(event);
          }
        });
      } else {
        bus.send(address, value);
      }
    }
  };

  public abstract void publish(EventBus bus, String address, String value);

  public abstract void send(EventBus bus, String address, String value, Handler> replyHandler);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy