Open Kilda Java Documentation
BoltToBoltMessage.java
Go to the documentation of this file.
1 package org.openkilda.wfm.protocol;
2 
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import org.apache.storm.tuple.Fields;
5 import org.apache.storm.tuple.Tuple;
7 
8 abstract public class BoltToBoltMessage<T> extends JsonMessage<T> {
9  public static String FIELD_ID_CORRELATION_ID = "Correlation-Id";
10 
11  public static Fields FORMAT = new Fields(
13 
14  private final String correlationId;
15 
16  public BoltToBoltMessage(Tuple raw) throws MessageFormatException {
17  super(raw);
18 
19  correlationId = raw.getString(
20  getFormat().fieldIndex(FIELD_ID_CORRELATION_ID));
21  }
22 
23  public BoltToBoltMessage(T payload, String correlationId) {
24  super(payload);
25  this.correlationId = correlationId;
26  }
27 
28  public String getCorrelationId() {
29  return correlationId;
30  }
31 
32  @Override
33  protected Object packField(String fieldId) throws JsonProcessingException {
34  if (fieldId.equals(FIELD_ID_CORRELATION_ID)) {
35  return getCorrelationId();
36  }
37  return super.packField(fieldId);
38  }
39 
40  @Override
41  protected Fields getFormat() {
42  return FORMAT;
43  }
44 }
BoltToBoltMessage(T payload, String correlationId)