/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { LegendApplicationPluginManager } from '@finos/legend-application';
import { Core_PureGraphManagerPlugin, } from '@finos/legend-graph';
import { Core_LegendStudioApplicationPlugin } from '../components/extensions/Core_LegendStudioApplicationPlugin.js';
export class LegendStudioPluginManager extends LegendApplicationPluginManager {
    pureProtocolProcessorPlugins = [];
    pureGraphManagerPlugins = [];
    pureGraphPlugins = [];
    userPlugins = [];
    constructor() {
        super();
    }
    registerUserPlugin(plugin) {
        this.userPlugins.push(plugin);
    }
    static create() {
        return new LegendStudioPluginManager();
    }
    registerPureProtocolProcessorPlugin(plugin) {
        this.pureProtocolProcessorPlugins.push(plugin);
    }
    registerPureGraphManagerPlugin(plugin) {
        this.pureGraphManagerPlugins.push(plugin);
    }
    registerPureGraphPlugin(plugin) {
        this.pureGraphPlugins.push(plugin);
    }
    getPureGraphManagerPlugins() {
        return [...this.pureGraphManagerPlugins];
    }
    getPureProtocolProcessorPlugins() {
        return [...this.pureProtocolProcessorPlugins];
    }
    getPureGraphPlugins() {
        return [...this.pureGraphPlugins];
    }
    getUserPlugins() {
        return [...this.userPlugins];
    }
    getHiddenPluginNames() {
        return [
            Core_LegendStudioApplicationPlugin.NAME,
            Core_PureGraphManagerPlugin.NAME,
        ];
    }
}
//# sourceMappingURL=LegendStudioPluginManager.js.map