@eclipse-glsp/theia-integration
Version:
Glue code to integrate GLSP clients into Eclipse Theia
68 lines • 4.17 kB
TypeScript
/********************************************************************************
* Copyright (c) 2019-2023 EclipseSource and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/
import { ContributionProvider } from '@theia/core';
import { DiagramWidgetFactory } from './diagram/diagram-widget-factory';
import { DiagramConfiguration } from './diagram/glsp-diagram-configuration';
import { GLSPClientContribution } from './glsp-client-contribution';
/**
* Provides lookup methods to diagram specific services (i.e. services that are associated with
* a specific diagram language implementation) via the `diagramType` and/or `contributionId`
*/
export declare class DiagramServiceProvider {
protected readonly glspClientContributions: ContributionProvider<GLSPClientContribution>;
protected readonly widgetFactoryContributions: ContributionProvider<DiagramWidgetFactory>;
protected readonly diagramConfigurationContribution: ContributionProvider<DiagramConfiguration>;
/**
* Retrieve the {@link DiagramWidgetFactory} that is configured for the given diagramType.
* @param diagramType The diagramType of the target widget factory.
* @throws An error if no `DiagramWidgetFactory` could be found for the given diagram type
* @returns the corresponding `DiagramWidgetFactory`
*/
getDiagramWidgetFactory(diagramType: string): DiagramWidgetFactory;
/**
* Look up the {@link DiagramWidgetFactory} that is configured for the given diagramType(if any).
* @param diagramType The diagramType of the target widget factory.
* @returns the corresponding `DiagramWidgetFactory` or `undefined` if no widget factory is configured for the given type
*/
findDiagramWidgetFactory(diagramType: string): DiagramWidgetFactory | undefined;
/**
* Retrieve the {@link DiagramConfiguration} that is configured for the given diagramType.
* @param diagramType The diagramType of the target diagram configuration.
* @throws An error if no `DiagramConfiguration` could be found for the given diagram type
* @returns the corresponding `DiagramConfiguration`
*/
getDiagramConfiguration(diagramType: string): DiagramConfiguration;
/**
* Look up the {@link DiagramWidgetFactory} that is configured for the given diagramType(if any).
* @param diagramType The diagramType of the target diagram configuration.
* @returns the corresponding `DiagramConfiguration` or `undefined` if no diagram configuration is configured for the given type
*/
findDiagramConfiguration(diagramType: string): DiagramConfiguration | undefined;
/**
* Retrieve the {@link DiagramConfiguration} that is configured for the given contributionId.
* @param contributionId The id of the target contribution.
* @throws An error if no `GLSPClientContribution` could be found for the given diagram type
* @returns the corresponding `GLSPClientContribution`
*/
getGLSPClientContribution(contributionId: string): GLSPClientContribution;
/**
* Look up the {@link GLSPClientContribution} that is configured for the given contribution Id (if any).
* @param contributionId The contributionId of the target contribution
* @returns the corresponding `GLSPClientContribution` or `undefined` if no client contribution is configured for the given type
*/
findGLSPClientContribution(contributionId: string): GLSPClientContribution | undefined;
}
//# sourceMappingURL=diagram-service-provider.d.ts.map