Open Kilda Java Documentation
RouteMessage.java
Go to the documentation of this file.
1 package org.openkilda.wfm.ctrl;
2 
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import org.apache.storm.tuple.Fields;
5 import org.apache.storm.tuple.Tuple;
10 
11 import java.io.IOException;
12 
13 public class RouteMessage extends BoltToBoltMessage<RequestData> {
14  public static final String FIELD_ID_TOPOLOGY = "topology";
15  public static final Fields FORMAT = new Fields(FIELD_ID_JSON, FIELD_ID_TOPOLOGY, FIELD_ID_CORRELATION_ID);
16 
17  private final String topology;
18 
19  public RouteMessage(Tuple raw) throws MessageFormatException {
20  super(raw);
21  topology = raw.getString(getFormat().fieldIndex(FIELD_ID_TOPOLOGY));
22  }
23 
24  public RouteMessage(RequestData payload, String correlationId, String topology) {
25  super(payload, correlationId);
26  this.topology = topology;
27  }
28 
29  @Override
30  protected RequestData unpackJson(String json) throws IOException {
31  return Utils.MAPPER.readValue(json, RequestData.class);
32  }
33 
34  @Override
35  protected Object packField(String fieldId) throws JsonProcessingException {
36  if (fieldId.equals(FIELD_ID_TOPOLOGY)) {
37  return getTopology();
38  }
39  return super.packField(fieldId);
40  }
41 
42  @Override
43  protected Fields getFormat() {
44  return FORMAT;
45  }
46 
47  public String getTopology() {
48  return topology;
49  }
50 }
RequestData unpackJson(String json)
static final ObjectMapper MAPPER
Definition: Utils.java:31
RouteMessage(RequestData payload, String correlationId, String topology)
static final String FIELD_ID_TOPOLOGY
Object packField(String fieldId)