package io.vertx.camel; import io.vertx.core.buffer.Buffer; import io.vertx.core.eventbus.MessageCodec; import io.vertx.core.json.Json; /** * @author <a href="http://escoffier.me">Clement Escoffier</a> */ public class PersonCodec implements MessageCodec<Person, Person> { @Override public void encodeToWire(Buffer buffer, Person person) { String encoded = Json.encode(person); buffer.appendInt(encoded.length()); buffer.appendString(encoded); } @Override public Person decodeFromWire(int pos, Buffer buffer) { int i = (int) buffer.getByte(pos); Buffer extracted = buffer.getBuffer(pos + 1, pos + i); return Json.decodeValue(extracted.toString(), Person.class); } @Override public Person transform(Person person) { return person; } @Override public String name() { return "person"; } @Override public byte systemCodecID() { return -1; } }