define([ 'lodash' ], function ( _ ) { var METADATA_BY_TYPE = { 'generator': { values: [ { key: "name", name: "Name" }, { key: "utc", name: "Time", format: "utc", hints: { domain: 1 } }, { key: "yesterday", name: "Yesterday", format: "utc", hints: { domain: 2 } }, { key: "sin", name: "Sine", formatString: '%0.2f', hints: { range: 1 } }, { key: "cos", name: "Cosine", formatString: '%0.2f', hints: { range: 2 } } ] }, 'example.state-generator': { values: [ { key: "name", name: "Name" }, { key: "utc", name: "Time", format: "utc", hints: { domain: 1 } }, { key: "state", source: "value", name: "State", format: "enum", enumerations: [ { value: 0, string: "OFF" }, { value: 1, string: "ON" } ], hints: { range: 1 } }, { key: "value", name: "Value", hints: { range: 2 } } ] } } function GeneratorMetadataProvider() { } GeneratorMetadataProvider.prototype.supportsMetadata = function (domainObject) { return METADATA_BY_TYPE.hasOwnProperty(domainObject.type); }; GeneratorMetadataProvider.prototype.getMetadata = function (domainObject) { return _.extend( {}, domainObject.telemetry, METADATA_BY_TYPE[domainObject.type] ); }; return GeneratorMetadataProvider; });