index.ts 929 B

1234567891011121314151617181920212223242526272829
  1. import SiguiyamaAlgorithm from "./optimizer/siguiyama/SiguiyamaAlgorithm.js";
  2. import Graph from "./graph/Graph.js";
  3. import Node from "./graph/node/Node.js";
  4. import Edge from "./graph/edge/Edge.js";
  5. import BPMNError from "./errors/BPMNError.js";
  6. export class BPMNOptimizer {
  7. private _optimizationAlgorithm?: SiguiyamaAlgorithm;
  8. private _graph?: Graph<Node, Edge<Node>>;
  9. public setOptimizationAlgorithm(algorithm: SiguiyamaAlgorithm) : this {
  10. this._optimizationAlgorithm = algorithm;
  11. return this;
  12. }
  13. public setGraph(graph: Graph<Node, Edge<Node>>) : this {
  14. this._graph = graph;
  15. return this;
  16. }
  17. public run() : void {
  18. if(!this._optimizationAlgorithm)
  19. throw new BPMNError("Optimization algorithm not found, call \"setOptimizationAlgorithm\" method first!");
  20. if(!this._graph)
  21. throw new BPMNError("Graph graph not found, call \"setGraph\" method first!");
  22. this._optimizationAlgorithm.run(this._graph);
  23. }
  24. }