/** * 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 Hashable } from '@finos/legend-shared'; import type { RelationType } from './RelationType.js'; import { DataProduct } from '../../dataProduct/DataProduct.js'; import { IngestDefinition } from '../ingest/IngestDefinition.js'; import type { Database } from '../store/relational/model/Database.js'; import { InstanceValue } from '../../valueSpecification/InstanceValue.js'; import type { ValueSpecificationVisitor } from '../../valueSpecification/ValueSpecification.js'; export type AccessorOwner = DataProduct | IngestDefinition | Database; export declare abstract class Accessor implements Hashable { accessorOwner: string; schema: string | undefined; accessor: string; relationType: RelationType; parentElement: AccessorOwner; constructor(accessorOwner: string, schema: string | undefined, accessor: string, relationType: RelationType, parentElement: AccessorOwner); get path(): string[]; get hashCode(): string; abstract get accessorOwnerLabel(): string; abstract get accessorLabel(): string; get schemaLabel(): string | undefined; } export declare class DataProductAccessor extends Accessor { parentElement: DataProduct; get accessorOwnerLabel(): string; get accessorLabel(): string; get schemaLabel(): string | undefined; get path(): string[]; } export declare class IngestionAccessor extends Accessor { parentElement: IngestDefinition; get accessorOwnerLabel(): string; get accessorLabel(): string; get schemaLabel(): string | undefined; } export declare class RelationalStoreAccessor extends Accessor implements Hashable { parentElement: Database; get accessorOwnerLabel(): string; get accessorLabel(): string; get schemaLabel(): string | undefined; } /** * Returns the accessor item label for the given element owner. * Labels mirror the corresponding Accessor subclass `accessorLabel` getters, * which are the authoritative source but require a full Accessor instance to * call. Use this helper when only the owner element is available. */ export declare const getAccessorItemLabelForElement: (element: AccessorOwner) => string; export declare class AccessorInstanceValue extends InstanceValue implements Hashable { values: Accessor[]; constructor(); get hashCode(): string; accept_ValueSpecificationVisitor(visitor: ValueSpecificationVisitor): T; } //# sourceMappingURL=Accessor.d.ts.map