|
|
@@ -3,16 +3,14 @@ import BPMNError from "./v1/errors/BPMNError.js";
|
|
|
import Edge from "./v1/graph/edge/Edge.js";
|
|
|
import Graph from "./v1/graph/Graph.js";
|
|
|
import Node from "./v1/graph/node/Node.js";
|
|
|
-import Deserializer from "./v1/io/deserialize/Deserializer.js";
|
|
|
-import DefaultJsonDeserializer from "./v1/io/deserialize/json/DefaultJsonDeserializer.js";
|
|
|
-import Serializer from "./v1/io/serialize/Serializer.js";
|
|
|
-import DefaultJsonSerializer from "./v1/io/serialize/json/DefaultJsonSerializer.js";
|
|
|
import CoordinateAssignmentStep from "./v1/optimizer/steps/CoordinateAssignmentStep.js";
|
|
|
import CycleRemoveStep from "./v1/optimizer/steps/CycleRemoveStep.js";
|
|
|
import LayerAssignmentStep from "./v1/optimizer/steps/LayerAssignmentStep.js";
|
|
|
import NodeOrderingStep from "./v1/optimizer/steps/NodeOrderingStep.js";
|
|
|
import SiguiyamaAlgorithm from "./v1/optimizer/siguiyama/SiguiyamaAlgorithm.js";
|
|
|
import { SiguiyamaContext } from "./v1/optimizer/siguiyama/SiguiyamaContext.js";
|
|
|
+import DzwfJsonDeserializer from "./v1/io/deserialize/json/DzwfJsonDeserializer.js";
|
|
|
+import DzwfJsonSerializer from "./v1/io/serialize/json/DzwfJsonSerializer.js";
|
|
|
|
|
|
export class BPMNOptimizer {
|
|
|
private _optimizationAlgorithm?: SiguiyamaAlgorithm;
|
|
|
@@ -29,14 +27,6 @@ export class BPMNOptimizer {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function getDeserializer() : Deserializer<string, Graph<Node, Edge<Node>>> {
|
|
|
- return new DefaultJsonDeserializer();
|
|
|
-}
|
|
|
-
|
|
|
-function getSerializer() : Serializer<Graph<Node, Edge<Node>>, string> {
|
|
|
- return new DefaultJsonSerializer();
|
|
|
-}
|
|
|
-
|
|
|
const algorithm = new SiguiyamaAlgorithm()
|
|
|
.addStep(new CycleRemoveStep())
|
|
|
.addStep(new LayerAssignmentStep())
|
|
|
@@ -44,8 +34,8 @@ const algorithm = new SiguiyamaAlgorithm()
|
|
|
.addStep(new CoordinateAssignmentStep(60, 100))
|
|
|
const optimizer = new BPMNOptimizer().setOptimizationAlgorithm(algorithm);
|
|
|
|
|
|
-const data = readFileSync("./data/graph.json").toString();
|
|
|
-const graph = getDeserializer().deserialize(data);
|
|
|
+const data = readFileSync("./data/1.json").toString();
|
|
|
+const { dzwfData, graph } = new DzwfJsonDeserializer().deserialize(data);
|
|
|
const result = optimizer.run(graph);
|
|
|
|
|
|
-writeFileSync(`./data/graph-${Date.now()}.json`, getSerializer().serialize(result.graph));
|
|
|
+writeFileSync(`./data/graph-${Date.now()}.json`, new DzwfJsonSerializer().serialize({ dzwfData, graph: result.graph }));
|