@finos/legend-graph
Version:
Legend graph and graph manager
112 lines • 7.13 kB
TypeScript
/**
* 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 { type Clazz } from '@finos/legend-shared';
import type { PackageableElement } from '../graph/metamodel/pure/packageableElements/PackageableElement.js';
import type { Enumeration } from '../graph/metamodel/pure/packageableElements/domain/Enumeration.js';
import type { Type } from '../graph/metamodel/pure/packageableElements/domain/Type.js';
import type { Class } from '../graph/metamodel/pure/packageableElements/domain/Class.js';
import type { Mapping } from '../graph/metamodel/pure/packageableElements/mapping/Mapping.js';
import type { Profile } from '../graph/metamodel/pure/packageableElements/domain/Profile.js';
import { Package } from '../graph/metamodel/pure/packageableElements/domain/Package.js';
import type { ConcreteFunctionDefinition } from './metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.js';
import type { Store } from '../graph/metamodel/pure/packageableElements/store/Store.js';
import type { Association } from '../graph/metamodel/pure/packageableElements/domain/Association.js';
import type { Service } from '../graph/metamodel/pure/packageableElements/service/Service.js';
import { BasicModel } from '../graph/BasicModel.js';
import type { PackageableRuntime } from '../graph/metamodel/pure/packageableElements/runtime/PackageableRuntime.js';
import type { PackageableConnection } from '../graph/metamodel/pure/packageableElements/connection/PackageableConnection.js';
import type { FileGenerationSpecification } from '../graph/metamodel/pure/packageableElements/fileGeneration/FileGenerationSpecification.js';
import type { GenerationSpecification } from '../graph/metamodel/pure/packageableElements/generationSpecification/GenerationSpecification.js';
import type { Measure } from '../graph/metamodel/pure/packageableElements/domain/Measure.js';
import type { SectionIndex } from '../graph/metamodel/pure/packageableElements/section/SectionIndex.js';
import { type EntitiesWithOrigin } from '@finos/legend-storage';
import type { Database } from './metamodel/pure/packageableElements/store/relational/model/Database.js';
import type { DataElement } from './metamodel/pure/packageableElements/data/DataElement.js';
import type { ExecutionEnvironmentInstance } from './metamodel/pure/packageableElements/service/ExecutionEnvironmentInstance.js';
import { type GraphDataOrigin } from './GraphDataOrigin.js';
import type { FunctionActivator } from './metamodel/pure/packageableElements/function/FunctionActivator.js';
import type { PureGraphPlugin } from './PureGraphPlugin.js';
import type { Testable } from './metamodel/pure/test/Testable.js';
import type { IngestDefinition } from './metamodel/pure/packageableElements/ingest/IngestDefinition.js';
export declare const DEPENDENCY_ROOT_PACKAGE_PREFIX = "@dependency__";
export declare const generateDependencyRootPackageName: (dependencyKey: string) => string;
export declare const extractDependencyGACoordinateFromRootPackageName: (packageName: string) => string | undefined;
export declare class DependencyModel extends BasicModel {
constructor(extensionElementClasses: PureGraphPlugin[], root: Package, origin: GraphDataOrigin);
}
export declare class DependencyManager {
private readonly graphPlugins;
private _origin;
roots: Package[];
projectDependencyModelsIndex: Map<string, BasicModel>;
constructor(graphPlugins: PureGraphPlugin[]);
/**
* Here we create and index a graph for each dependency
*/
initialize(dependencyEntitiesIndex: Map<string, EntitiesWithOrigin>): void;
get numberOfDependencies(): number;
get hasDependencies(): boolean;
get dependencyGraphs(): BasicModel[];
get allOwnElements(): PackageableElement[];
get origin(): GraphDataOrigin | undefined;
setOrigin(val: GraphDataOrigin): void;
getOwnNullableSectionIndex: (path: string) => SectionIndex | undefined;
getOwnNullableProfile: (path: string) => Profile | undefined;
getOwnNullableType: (path: string) => Type | undefined;
getOwnNullableClass: (path: string) => Class | undefined;
getOwnNullableEnumeration: (path: string) => Enumeration | undefined;
getOwnNullableMeasure: (path: string) => Measure | undefined;
getOwnNullableAssociation: (path: string) => Association | undefined;
getOwnNullableFunction: (path: string) => ConcreteFunctionDefinition | undefined;
getOwnNullableFunctionActivator: (path: string) => FunctionActivator | undefined;
getOwnNullableStore: (path: string) => Store | undefined;
getOwnNullableMapping: (path: string) => Mapping | undefined;
getOwnNullableConnection: (path: string) => PackageableConnection | undefined;
getOwnNullableRuntime: (path: string) => PackageableRuntime | undefined;
getOwnNullableService: (path: string) => Service | undefined;
getOwnNullableGenerationSpecification: (path: string) => GenerationSpecification | undefined;
getOwnNullableFileGeneration: (path: string) => FileGenerationSpecification | undefined;
getOwnNullableDataElement: (path: string) => DataElement | undefined;
getOwnExecutionEnvironment: (path: string) => ExecutionEnvironmentInstance | undefined;
getOwnNullableExtensionElement<T extends PackageableElement>(path: string, extensionElementClass: Clazz<T>): T | undefined;
get sectionIndices(): SectionIndex[];
get profiles(): Profile[];
get enumerations(): Enumeration[];
get measures(): Measure[];
get classes(): Class[];
get types(): Type[];
get associations(): Association[];
get functions(): ConcreteFunctionDefinition[];
get functionActivators(): FunctionActivator[];
get stores(): Store[];
get databases(): Database[];
get mappings(): Mapping[];
get services(): Service[];
get runtimes(): PackageableRuntime[];
get connections(): PackageableConnection[];
get dataElements(): DataElement[];
get generationSpecifications(): GenerationSpecification[];
get fileGenerations(): FileGenerationSpecification[];
get testables(): Testable[];
get executionEnvironments(): ExecutionEnvironmentInstance[];
get ingests(): IngestDefinition[];
getExtensionElements<T extends PackageableElement>(extensionElementClass: Clazz<T>): T[];
getModel(projectId: string): BasicModel;
getNullableElement(path: string, includePackage?: boolean): PackageableElement | undefined;
getPackages(path: string): Package[];
getElementOrigin(element: PackageableElement): string | undefined;
}
//# sourceMappingURL=DependencyManager.d.ts.map