2 * ============LICENSE_START========================================================================
3 * ONAP : ccsdk feature sdnr wt odlux
4 * =================================================================================================
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6 * =================================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software distributed under the License
13 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14 * or implied. See the License for the specific language governing permissions and limitations under
16 * ============LICENSE_END==========================================================================
18 import { ApplicationInfo } from '../models/applicationInfo';
19 import { Event } from '../common/event';
21 import { applicationApi } from './applicationApi';
23 /** Represents registry to manage all applications. */
24 class ApplicationManager {
26 /** Stores all registered applications. */
27 private _applications: { [key: string]: ApplicationInfo };
29 /** Initializes a new instance of this class. */
31 this._applications = {};
32 this.changed = new Event<void>();
35 /** The changed event will fire if the registration has changed. */
36 public changed: Event<void>;
38 /** Registers a new application. */
39 public registerApplication(applicationInfo: ApplicationInfo) {
40 this._applications[applicationInfo.name] = applicationInfo;
41 this.changed.invoke();
42 return applicationApi;
45 /** Gets all registered applications. */
46 public get applications() {
47 return this._applications;
51 /** A singleton instance of the application manager. */
52 export const applicationManager = new ApplicationManager();
53 export default applicationManager;