import SiguiyamaAlgorithm from "./optimizer/siguiyama/SiguiyamaAlgorithm.js"; import Graph from "./graph/Graph.js"; import Node from "./graph/node/Node.js"; import Edge from "./graph/edge/Edge.js"; import BPMNError from "./errors/BPMNError.js"; export class BPMNOptimizer { private _optimizationAlgorithm?: SiguiyamaAlgorithm; private _graph?: Graph>; public setOptimizationAlgorithm(algorithm: SiguiyamaAlgorithm) : this { this._optimizationAlgorithm = algorithm; return this; } public setGraph(graph: Graph>) : this { this._graph = graph; return this; } public run() : void { if(!this._optimizationAlgorithm) throw new BPMNError("Optimization algorithm not found, call \"setOptimizationAlgorithm\" method first!"); if(!this._graph) throw new BPMNError("Graph graph not found, call \"setGraph\" method first!"); this._optimizationAlgorithm.run(this._graph); } }