コード例 #1
0
  public byte[] getBytes() throws IOException {
    final KuraPayloadProto.KuraPayload.Builder protoMsg = KuraPayloadProto.KuraPayload.newBuilder();

    if (this.m_kuraPayload.getTimestamp() != null) {
      protoMsg.setTimestamp(this.m_kuraPayload.getTimestamp().getTime());
    }

    if (this.m_kuraPayload.getPosition() != null) {
      protoMsg.setPosition(this.buildPositionProtoBuf());
    }

    for (final String name : this.m_kuraPayload.metricNames()) {

      final Object value = this.m_kuraPayload.getMetric(name);
      try {
        final KuraPayloadProto.KuraPayload.KuraMetric.Builder metricB =
            KuraPayloadProto.KuraPayload.KuraMetric.newBuilder();
        metricB.setName(name);

        setProtoKuraMetricValue(metricB, value);
        metricB.build();

        protoMsg.addMetric(metricB);
      } catch (final Exception eihte) {
        try {
          s_logger.error(
              "During serialization, ignoring metric named: {}. Unrecognized value type: {}.",
              name,
              value.getClass().getName());
        } catch (final NullPointerException npe) {
          s_logger.error(
              "During serialization, ignoring metric named: {}. The value is null.", name);
        }
        throw new RuntimeException(eihte);
      }
    }

    if (this.m_kuraPayload.getBody() != null) {
      protoMsg.setBody(ByteString.copyFrom(this.m_kuraPayload.getBody()));
    }

    return protoMsg.build().toByteArray();
  }