You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
955 B
43 lines
955 B
import { AnalyticUnit, DetectorType } from './analytic_unit'; |
|
|
|
import _ from 'lodash'; |
|
|
|
|
|
export enum Condition { |
|
ABOVE = '>', |
|
ABOVE_OR_EQUAL = '>=', |
|
EQUAL = '=', |
|
LESS_OR_EQUAL = '<=', |
|
LESS = '<', |
|
NO_DATA = 'NO_DATA' |
|
}; |
|
|
|
const DEFAULTS = { |
|
detectorType: DetectorType.THRESHOLD, |
|
type: 'THRESHOLD', |
|
value: 0, |
|
condition: Condition.ABOVE_OR_EQUAL |
|
}; |
|
|
|
export class ThresholdAnalyticUnit extends AnalyticUnit { |
|
|
|
constructor(_serverObject?: any) { |
|
super(_serverObject); |
|
_.defaults(this._serverObject, DEFAULTS); |
|
} |
|
|
|
toJSON() { |
|
const baseJSON = super.toJSON(); |
|
return { |
|
...baseJSON, |
|
value: this.value, |
|
condition: this.condition |
|
}; |
|
} |
|
|
|
set value(val: number) { this._serverObject.value = val; } |
|
get value(): number { return this._serverObject.value; } |
|
|
|
set condition(val: Condition) { this._serverObject.condition = val; } |
|
get condition(): Condition { return this._serverObject.condition; } |
|
}
|
|
|