sprotty
Version:
A next-gen framework for graphical views
34 lines • 1.81 kB
TypeScript
/********************************************************************************
* Copyright (c) 2017-2021 TypeFox 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 { SModelElement, SModelRoot } from 'sprotty-protocol/lib/model';
import { SModelRootImpl, SModelElementImpl, IModelIndex } from '../../base/model/smodel';
export interface Match {
left?: SModelElement;
right?: SModelElement;
leftParentId?: string;
rightParentId?: string;
}
export interface MatchResult {
[id: string]: Match;
}
export declare function forEachMatch(matchResult: MatchResult, callback: (id: string, match: Match) => void): void;
export declare class ModelMatcher {
match(left: SModelRoot | SModelRootImpl, right: SModelRoot | SModelRootImpl): MatchResult;
protected matchLeft(element: SModelElement | SModelElementImpl, result: MatchResult, parentId?: string): void;
protected matchRight(element: SModelElement | SModelElementImpl, result: MatchResult, parentId?: string): void;
}
export declare function applyMatches(root: SModelRoot, matches: Match[], index?: IModelIndex): void;
//# sourceMappingURL=model-matching.d.ts.map