2020-05-02 19:40:53 +02:00
|
|
|
/*
|
|
|
|
* Copyright (C) Sapphirecode - All Rights Reserved
|
|
|
|
* This file is part of Modelling which is released under MIT.
|
|
|
|
* See file 'LICENSE' for full license details.
|
|
|
|
* Created by Timo Hocker <timo@scode.ovh>, May 2020
|
|
|
|
*/
|
|
|
|
|
2020-05-04 20:04:38 +02:00
|
|
|
import { Assignable } from './interfaces/Assignable';
|
2020-05-02 21:11:55 +02:00
|
|
|
|
2020-05-04 20:04:38 +02:00
|
|
|
export abstract class ControlModel extends Assignable {
|
2020-05-03 15:35:29 +02:00
|
|
|
public constructor (obj: Record<string, string|number|boolean>) {
|
2020-05-04 20:04:38 +02:00
|
|
|
super ();
|
|
|
|
this.data = obj as Record<string, string|number|boolean>;
|
2020-05-02 21:18:32 +02:00
|
|
|
}
|
|
|
|
|
2020-05-03 15:35:29 +02:00
|
|
|
public apply_object (obj: Record<string, unknown>): void {
|
|
|
|
for (const key of Object.keys (obj)) {
|
|
|
|
if ([
|
|
|
|
'string',
|
|
|
|
'number',
|
|
|
|
'boolean'
|
|
|
|
].indexOf (typeof obj[key]) > -1)
|
2020-05-04 20:04:38 +02:00
|
|
|
this.data[key] = obj[key];
|
2020-05-03 15:35:29 +02:00
|
|
|
}
|
2020-05-02 21:18:32 +02:00
|
|
|
}
|
|
|
|
|
2020-05-02 21:11:55 +02:00
|
|
|
public get (key: string): string|number|boolean {
|
2020-05-04 20:04:38 +02:00
|
|
|
return this.data[key] as string|number|boolean;
|
2020-05-02 21:11:55 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public set (key: string, value: string|number|boolean): void {
|
|
|
|
this.data[key] = value;
|
|
|
|
}
|
2020-04-23 17:09:14 +02:00
|
|
|
|
|
|
|
public update (): void {
|
|
|
|
this.verify ();
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract verify(): void;
|
|
|
|
}
|