lib/ordered_tree: adapt OrderedTree to Streamable
authorJean Privat <jean@pryen.org>
Fri, 14 Mar 2014 00:29:42 +0000 (20:29 -0400)
committerJean Privat <jean@pryen.org>
Fri, 14 Mar 2014 01:05:02 +0000 (21:05 -0400)
and update clients

Signed-off-by: Jean Privat <jean@pryen.org>

lib/ordered_tree.nit
src/metrics/rta_metrics.nit

index ede2196..3b96bef 100644 (file)
@@ -24,6 +24,8 @@ module ordered_tree
 # The class can be used as it to work with generic tree.
 # The class can also be specialized to provide more specific behavior.
 class OrderedTree[E: Object]
+       super Streamable
+
        # Sequence
        var roots = new Array[E]
        var sub = new HashMap[E, Array[E]]
@@ -49,17 +51,17 @@ class OrderedTree[E: Object]
 
        # print the full tree on `o`
        # Write a ASCII-style tree and use the `display` method to label elements
-       fun pretty(o: OStream)
+       redef fun write_to(stream: OStream)
        do
                var last = roots.last
                for r in roots do
-                       o.write display(r)
-                       o.write "\n"
-                       sub_pretty(o, r, "")
+                       stream.write display(r)
+                       stream.write "\n"
+                       sub_write_to(stream, r, "")
                end
        end
 
-       private fun sub_pretty(o: OStream, e: E, prefix: String)
+       private fun sub_write_to(o: OStream, e: E, prefix: String)
        do
                if not sub.has_key(e) then return
                var subs = sub[e]
@@ -67,10 +69,10 @@ class OrderedTree[E: Object]
                for e2 in subs do
                        if e2 != last then
                                o.write "{prefix}|--{display(e2)}\n"
-                               sub_pretty(o, e2, prefix+"|  ")
+                               sub_write_to(o, e2, prefix+"|  ")
                        else
                                o.write "{prefix}`--{display(e2)}\n"
-                               sub_pretty(o, e2, prefix+"   ")
+                               sub_write_to(o, e2, prefix+"   ")
                        end
                end
        end
index d274207..99c0cb4 100644 (file)
@@ -83,10 +83,7 @@ private class RTAMetricsPhase
                # dump type and method infos
                if csv then
                        analysis.live_types_to_csv.save("{out}/rta_types.csv")
-
-                       var s = new OFStream.open("{out}/rta_methods.dat")
-                       analysis.live_methods_to_tree.pretty(s)
-                       s.close
+                       analysis.live_methods_to_tree.write_to_file("{out}/rta_methods.dat")
                end
        end
 end