UNPKG

pddl-workspace

Version:
64 lines 2.6 kB
"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Jan Dolejsi 2020. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ Object.defineProperty(exports, "__esModule", { value: true }); exports.WellKnownPlannerKind = exports.PlannerKind = exports.PlannerRegistrar = void 0; const utils_1 = require("../utils"); /** Keeps track of planner providers. */ class PlannerRegistrar { constructor() { this.providers = new PlannerProviderMap(); } /** * Extensions should call this method to register their planner wrapper. * @param kind planner kind this `provider` supports * @param provider planner provider */ registerPlannerProvider(kind, provider) { if (this.providers.has(kind)) { throw new Error(`Planner provider for kind '${kind.kind}' is already registered.`); } this.providers.set(kind, provider); } getPlannerProviders() { return this.providers.valueList(); } getPlannerProvider(kind) { return this.providers.get(kind); } } exports.PlannerRegistrar = PlannerRegistrar; class PlannerKind { constructor(kind) { this.kind = kind; } /** * Derives a kind of planner implementation/variant. * @param implementation implementation/variant name * @returns new planner kind */ derive(implementation) { return new PlannerKind(this.kind + ':' + implementation); } } exports.PlannerKind = PlannerKind; class WellKnownPlannerKind { } exports.WellKnownPlannerKind = WellKnownPlannerKind; WellKnownPlannerKind.EXECUTABLE = new PlannerKind("EXECUTABLE"); WellKnownPlannerKind.JAVA_JAR = new PlannerKind("JAVA_JAR"); WellKnownPlannerKind.NODE_JS_SCRIPT = new PlannerKind("NODE_JS_SCRIPT"); WellKnownPlannerKind.PYTHON_SCRIPT = new PlannerKind("PYTHON_SCRIPT"); WellKnownPlannerKind.COMMAND = new PlannerKind("COMMAND"); WellKnownPlannerKind.SERVICE_SYNC = new PlannerKind("SERVICE_SYNC"); WellKnownPlannerKind.SERVICE_ASYNC = new PlannerKind("SERVICE_ASYNC"); WellKnownPlannerKind.PLANNING_AS_A_SERVICE = new PlannerKind("PLANNING_AS_A_SERVICE"); WellKnownPlannerKind.PLANNING_AS_A_SERVICE_PREVIEW = new PlannerKind("PLANNING_AS_A_SERVICE_PREVIEW"); class PlannerProviderMap extends utils_1.StringifyingMap { stringifyKey(key) { return key.kind; } } //# sourceMappingURL=PlannerRegistrar.js.map