icestormikk 4 weeks ago
parent
commit
dd0f894ae2
3 changed files with 15 additions and 28 deletions
  1. 2 2
      package-lock.json
  2. 1 1
      package.json
  3. 12 25
      src/index.ts

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
 	"name": "bpmn-optimizer",
-	"version": "0.1.0",
+	"version": "0.1.1",
 	"lockfileVersion": 3,
 	"requires": true,
 	"packages": {
 		"": {
 			"name": "bpmn-optimizer",
-			"version": "0.1.0",
+			"version": "0.1.1",
 			"license": "ISC",
 			"dependencies": {
 				"valibot": "^1.2.0"

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 	"name": "bpmn-optimizer",
-	"version": "0.1.0",
+	"version": "0.1.1",
 	"description": "Optimizer for BPMN diagrams",
 	"keywords": [
 		"bpmn",

+ 12 - 25
src/index.ts

@@ -3,40 +3,27 @@ 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";
-import {SiguiyamaContext} from "./optimizer/siguiyama/SiguiyamaContext.js";
-import DzwfJsonDeserializer from "./io/deserialize/json/DzwfJsonDeserializer.js";
-import {readFileSync, writeFileSync} from "node:fs";
-import CycleRemoveStep from "./optimizer/steps/CycleRemoveStep.js";
-import LayerAssignmentStep from "./optimizer/steps/LayerAssignmentStep.js";
-import NodeOrderingStep from "./optimizer/steps/NodeOrderingStep.js";
-import CoordinateAssignmentStep from "./optimizer/steps/CoordinateAssignmentStep.js";
-import EdgeRoutingStep from "./optimizer/steps/EdgeRoutingStep.js";
-import CleanupStep from "./optimizer/steps/CleanupStep.js";
-import DzwfJsonSerializer from "./io/serialize/json/DzwfJsonSerializer.js";
 
 export class BPMNOptimizer {
 	private _optimizationAlgorithm?: SiguiyamaAlgorithm;
+	private _graph?: Graph<Node, Edge<Node>>;
 
 	public setOptimizationAlgorithm(algorithm: SiguiyamaAlgorithm) : this {
 		this._optimizationAlgorithm = algorithm;
 		return this;
 	}
 
-	public run(graph: Graph<Node, Edge<Node>>) : SiguiyamaContext {
-		if(!this._optimizationAlgorithm)
-			throw new BPMNError("Optimization algorithm not found, call \"setOptimizationAlgorithm\" method first!");
-		return this._optimizationAlgorithm.run(graph);
+	public setGraph(graph: Graph<Node, Edge<Node>>) : this {
+		this._graph = graph;
+		return this;
 	}
-}
-
-const deserializer = new DzwfJsonDeserializer();
-const data = deserializer.deserialize(readFileSync("./data/bpmn-graph.json", "utf8"));
-
-const algorithm = new SiguiyamaAlgorithm().addStep(new CycleRemoveStep()).addStep(new LayerAssignmentStep()).addStep(new NodeOrderingStep()).addStep(new CoordinateAssignmentStep()).addStep(new EdgeRoutingStep()).addStep(new CleanupStep());
 
-const optimizer = new BPMNOptimizer().setOptimizationAlgorithm(algorithm);
-
-optimizer.run(data.graph);
+	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!");
 
-const serializer = new DzwfJsonSerializer();
-writeFileSync("./data/document.dzwf", serializer.serialize(data));
+		this._optimizationAlgorithm.run(this._graph);
+	}
+}