From 8c5c53c19b976402fa123d323ec9db11c85b09c4 Mon Sep 17 00:00:00 2001 From: Jiuyang liu Date: Fri, 21 Feb 2020 00:46:48 +0000 Subject: [PATCH] make LazyModule.nodes accessable by users. 1. make LazyModule.nodes accessable to user for debugging and reuse Nodes. 2. refactor childrenIterator to nodeIterator, add nodeIterator to access all children's BaseNode. --- src/main/scala/diplomacy/LazyModule.scala | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/scala/diplomacy/LazyModule.scala b/src/main/scala/diplomacy/LazyModule.scala index fb4b27dac1..80e0480a94 100644 --- a/src/main/scala/diplomacy/LazyModule.scala +++ b/src/main/scala/diplomacy/LazyModule.scala @@ -112,12 +112,19 @@ abstract class LazyModule()(implicit val p: Parameters) children.filter(!_.omitGraphML).foreach { c => c.edgesGraphML(buf, pad) } } - def nodeIterator(iterfunc: (LazyModule) => Unit): Unit = { + def childrenIterator(iterfunc: (LazyModule) => Unit): Unit = { iterfunc(this) - children.foreach( _.nodeIterator(iterfunc) ) + children.foreach( _.childrenIterator(iterfunc) ) + } + + def nodeIterator(iterfunc: (BaseNode) => Unit): Unit = { + nodes.foreach(iterfunc) + childrenIterator(_.nodes.foreach(iterfunc)) } def getChildren = children + + def getNodes = nodes } object LazyModule