override def toString : String = toStrings.mkString("\n")
private def toStrings : List[String] = {
- val result = ArrayBuffer[String]("Index: " + localIndex)
+ val result = ArrayBuffer[String]()
+ result += "Index: " + (localIndex match {
+ case Some(x) => x.toString
+ case None => "None"
+ })
for (entryID <- 0 until subItems.size) {
val subList = (subItems(entryID) match {
case Right(tree) => tree.toStrings
})
- val prefix = if (entryID < subItems.size-1) "| " else " "
- result ++= "`--"+subList.head :: (subList.tail.map(prefix+_))
+ val subListHeadPrefix = if (entryID < subItems.size-1) "|--" else "`--"
+ val subListTailPrefix = if (entryID < subItems.size-1) "| " else " "
+ result ++= (subListHeadPrefix+subList.head) :: (subList.tail.map(subListTailPrefix+_))
}
result.toList