UNPKG

@jahed/sparql-engine

Version:

SPARQL query engine for servers and web browsers.

37 lines (29 loc) 896 B
// SPDX-License-Identifier: MIT import type { Bindings } from "../../rdf/bindings.ts"; import Dataset from "../../rdf/dataset.ts"; import type { PipelineStage } from "../pipeline/pipeline-engine.ts"; import { PlanBuilder } from "../plan-builder.ts"; /** * A StageBuilder encapsulate a strategy for executing a class of SPARQL operations * @abstract */ export default abstract class StageBuilder { protected _builder: PlanBuilder | null = null; protected _dataset: Dataset; constructor(dataset: Dataset) { this._dataset = dataset; } get builder(): PlanBuilder | null { return this._builder; } set builder(builder: PlanBuilder | null) { this._builder = builder; } get dataset(): Dataset { return this._dataset; } set dataset(dataset: Dataset) { this._dataset = dataset; } abstract execute(...args: any[]): Promise<PipelineStage<Bindings>>; }