angular-docs-cn/modules/benchpress/src/sample_description.js

52 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-02-18 09:04:02 -08:00
import { StringMapWrapper, ListWrapper, StringMap } from 'angular2/src/facade/collection';
import { bind, OpaqueToken } from 'angular2/di';
import { Validator } from './validator';
import { Metric } from './metric';
import { Options } from './common_options';
/**
* SampleDescription merges all available descriptions about a sample
*/
export class SampleDescription {
// TODO(tbosch): use static values when our transpiler supports them
static get BINDINGS() { return _BINDINGS; }
id:string;
2015-02-18 09:04:02 -08:00
description:StringMap;
metrics:StringMap;
2015-02-18 09:04:02 -08:00
constructor(id, descriptions:List<StringMap>, metrics:StringMap) {
this.id = id;
this.metrics = metrics;
this.description = {};
ListWrapper.forEach(descriptions, (description) => {
StringMapWrapper.forEach(description, (value, prop) => this.description[prop] = value );
});
}
2015-03-06 11:46:33 -08:00
toJson() {
return {
'id': this.id,
'description': this.description,
'metrics': this.metrics
};
}
}
var _BINDINGS = [
bind(SampleDescription).toFactory(
(metric, id, forceGc, userAgent, validator, defaultDesc, userDesc) => new SampleDescription(id,
[
{'forceGc': forceGc, 'userAgent': userAgent},
validator.describe(),
defaultDesc,
userDesc
],
metric.describe()),
[
Metric, Options.SAMPLE_ID, Options.FORCE_GC, Options.USER_AGENT,
Validator, Options.DEFAULT_DESCRIPTION, Options.SAMPLE_DESCRIPTION
]
)
];