private val e1 = (a ~%> b) (1.0)
private val e2 = (b ~%> c) (2.0)
private val cyclicalEdge = (c ~%> a) (3.0)
.
g.add(e1)
g.add(e2)
g.add(cyclicalEdge)
private val mainDesc = new Descriptor[SomeNodeType](
defaultNodeDescriptor = taskNodeDescriptor,
defaultEdgeDescriptor = WDi.descriptor[SomeNodeType]()
)
private val stringified = g.toJson(mainDesc)
import net.liftweb.json._
val pretty = prettyRender(JsonParser.parse(stringified))
println(s"################# \n $pretty \n ################## \n")
import scalax.collection.io.json._
val tasks: Graph[SavedQueryTaskNode, WDiEdge] = Graph.fromJson[SomeNodeType, WDiEdge](stringified, mainDesc)
println(s"\n###############################################\n TASKS \n ############################################### \n $tasks")
println("traversing graph now ... ")
// you can find if there's a cycle
//println(s"is there a cycle in the graph ?? ${tasks.findCycle}")
def edgeOrdering = tasks.EdgeOrdering(tasks.Edge.WeightOrdering.reverse.compare)
val traverser = (tasks get createSavedQueryTaskNode).innerNodeTraverser.withOrdering(edgeOrdering)
println(s"traverser.toList ### = ${traverser.toList}")