UNPKG

@pandorajs/hub

Version:

pandora.js messenge hub

55 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectProxyBehaviourManager = void 0; const DefaultObjectProxyBehaviour_1 = require("./DefaultObjectProxyBehaviour"); const ObjectUtils_1 = require("./ObjectUtils"); /** * ObjectProxyBehaviourManager * Unified management of all Object Proxy Behaviour through Remote and Proxy */ class ObjectProxyBehaviourManager { constructor() { this.idToBehaviour = new Map(); } /** * Set a Behaviour for an ObjectDescription * @param {ObjectDescription} objectDescription * @param {ObjectProxyBehaviour} behaviour */ setBehaviour(objectDescription, behaviour) { const id = ObjectUtils_1.ObjectUtils.objectDescriptionToId(objectDescription); this.idToBehaviour.set(id, behaviour); } /** * Remove a Behaviour by an ObjectDescription * @param {ObjectDescription} objectDescription * @param {ObjectProxyBehaviour} behaviour */ removeBehaviour(objectDescription) { const id = ObjectUtils_1.ObjectUtils.objectDescriptionToId(objectDescription); this.idToBehaviour.delete(id); } /** * Get the Behaviour by an ObjectDescription * Default as DefaultObjectProxyBehaviour if there not set Behaviour for this ObjectDescription * @param {ObjectDescription} objectDescription * @param {ObjectProxyBehaviour} behaviour */ getBehaviour(objectDescription) { const id = ObjectUtils_1.ObjectUtils.objectDescriptionToId(objectDescription); if (this.idToBehaviour.has(id)) { return this.idToBehaviour.get(id); } else { return DefaultObjectProxyBehaviour_1.DefaultObjectProxyBehaviour; } } static getInstance() { if (!ObjectProxyBehaviourManager.instance) { ObjectProxyBehaviourManager.instance = new ObjectProxyBehaviourManager(); } return ObjectProxyBehaviourManager.instance; } } exports.ObjectProxyBehaviourManager = ObjectProxyBehaviourManager; //# sourceMappingURL=ObjectProxyBehaviourManager.js.map