private Metric convertMetric(SparkplugBProto.Payload.Metric protoMetric) throws Exception { // Convert the dataType MetricDataType dataType = MetricDataType.fromInteger((protoMetric.getDatatype())); // Build and return the Metric return new MetricBuilder(protoMetric.getName(), dataType, getMetricValue(protoMetric)) .isHistorical( protoMetric.hasIsHistorical() ? protoMetric.getIsHistorical() : null) .isTransient(protoMetric .hasIsTransient() ? protoMetric.getIsTransient() : null) .timestamp(protoMetric.hasTimestamp() ? new Date(protoMetric.getTimestamp()) : null) .alias(protoMetric.hasAlias() ? protoMetric.getAlias() : null) .metaData(protoMetric.hasMetadata() ? new MetaDataBuilder().contentType(protoMetric.getMetadata().getContentType()) .size(protoMetric.getMetadata().getSize()).seq(protoMetric.getMetadata().getSeq()) .fileName(protoMetric.getMetadata().getFileName()) .fileType(protoMetric.getMetadata().getFileType()) .md5(protoMetric.getMetadata().getMd5()) .description(protoMetric.getMetadata().getDescription()).createMetaData() : null) .properties(protoMetric.hasProperties() ? new PropertySetBuilder().addProperties(convertProperties(protoMetric.getProperties())) .createPropertySet() : null) .createMetric(); }
public MetricBuilder(Metric metric) throws SparkplugException { this.name = metric.getName(); this.alias = metric.getAlias(); this.timestamp = metric.getTimestamp(); this.dataType = metric.getDataType(); this.isHistorical = metric.isHistorical(); this.isTransient = metric.isTransient(); this.metaData = metric.getMetaData() != null ? new MetaDataBuilder(metric.getMetaData()).createMetaData() : null; this.properties = metric.getMetaData() != null ? new PropertySetBuilder(metric.getProperties()).createPropertySet() : null; switch (dataType) { case DataSet: this.value = metric.getValue() != null ? new DataSetBuilder((DataSet) metric.getValue()).createDataSet() : null; break; case Template: this.value = metric.getValue() != null ? new TemplateBuilder((Template) metric.getValue()).createTemplate() : null; break; default: this.value = metric.getValue(); } }