/* * 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 , May 2020 */ import { Assignable } from './interfaces/Assignable'; export abstract class ControlModel extends Assignable { public constructor (obj: Record) { super (); this.data = obj as Record; } public apply_object (obj: Record): void { for (const key of Object.keys (obj)) { if ([ 'string', 'number', 'boolean' ].indexOf (typeof obj[key]) > -1) this.data[key] = obj[key]; } } public get_data (): Record { return super.get_data () as Record; } public get (key: string): string|number|boolean { return this.data[key] as string|number|boolean; } public set (key: string, value: string|number|boolean): void { this.data[key] = value; } public update (): void { this.verify (); } public abstract verify(): void; }