override def toString : String = toStrings.mkString("\n")
private def toStrings : List[String] = {
+ val stringTree = ArrayBuffer[List[String]]()
val result = ArrayBuffer[String]()
result += "Index: " + (localIndex match {
case Some(x) => x.toString
})
for(bufferDescriptor <- bufferDescriptors)
- result += "|--"+bufferDescriptor.toString
+ stringTree += List(bufferDescriptor.toString)
- for (entryID <- 0 until subItems.size) {
- val subList = (subItems(entryID) match {
+ for (subItem <- subItems) {
+ val subList = (subItem match {
case (tree: LoopTree) => tree.toStrings
case x => List(x.toString)
})
- val subListHeadPrefix = if (entryID < subItems.size-1) "|--" else "`--"
- val subListTailPrefix = if (entryID < subItems.size-1) "| " else " "
- result ++= (subListHeadPrefix+subList.head) :: (subList.tail.map(subListTailPrefix+_))
+ stringTree += subList
+ }
+
+ for((subTree, subTreeIndex) <- stringTree.zipWithIndex) {
+ val subTreeHeadPrefix = if (subTreeIndex < stringTree.size-1) "|--" else "`--"
+ val subTreeTailPrefix = if (subTreeIndex < stringTree.size-1) "| " else " "
+ result ++= (subTreeHeadPrefix+subTree.head) :: (subTree.tail.map(subTreeTailPrefix+_))
}
result.toList