{ "name": "TemplateDef", "timestamp": 1499817463261, "dataType": "Template", "value": { "version": "v1.0", "isDefinition": true, "metrics": [ { "name": "floatMember", "timestamp": 1499817463260, "dataType": "Float", "value": 1.23 }, { "name": "stringMember", "timestamp": 1499817463260, "dataType": "String", "value": "123" } ], "parameters": [ { "name": "Param1", "type": "Boolean", "value": true }, { "name": "Param2", "type": "Int32", "value": 123 } ] } } { "name": "TemplateInst", "timestamp": 1499817757169, "dataType": "Template", "value": { "reference": "TemplateDef", "isDefinition": false, "metrics": [ { "name": "floatMember", "timestamp": 1499817757169, "dataType": "Float", "value": 3.21 }, { "name": "stringMember", "timestamp": 1499817757169, "dataType": "String", "value": "321" } ], "parameters": [ { "name": "Param1", "type": "Boolean", "value": false }, { "name": "Param2", "type": "Int32", "value": 321 } ] } } Template templateDef = new TemplateBuilder() .version("v1.0") .definition(true) .addParameter(new Parameter("Param1", ParameterDataType.Boolean, true)) .addParameter(new Parameter("Param2", ParameterDataType.Int32, (int)123)) .addMetric(new MetricBuilder("floatMember", MetricDataType.Float, 1.23F).createMetric()) .addMetric(new MetricBuilder("stringMember", MetricDataType.String, "123").createMetric()) .createTemplate(); Metric metric = new MetricBuilder("TemplateDef", Template, templateDef).createMetric(); Template templateInst = new TemplateBuilder() .definition(false) .templateRef("TemplateDef") .addParameter(new Parameter("Param1", ParameterDataType.Boolean, false)) .addParameter(new Parameter("Param2", ParameterDataType.Int32, (int)321)) .addMetric(new MetricBuilder("floatMember", MetricDataType.Float, 3.21F).createMetric()) .addMetric(new MetricBuilder("stringMember", MetricDataType.String, "321").createMetric()) .createTemplate(); Metric metric = new MetricBuilder("TemplateInst", Template, templateInst).createMetric();