]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.graph/src/org/simantics/graph/refactoring/PrintReferencesTool.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph / src / org / simantics / graph / refactoring / PrintReferencesTool.java
diff --git a/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/PrintReferencesTool.java b/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/PrintReferencesTool.java
new file mode 100644 (file)
index 0000000..e98affe
--- /dev/null
@@ -0,0 +1,47 @@
+package org.simantics.graph.refactoring;\r
+\r
+import gnu.trove.map.hash.THashMap;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+\r
+import org.simantics.databoard.Files;\r
+import org.simantics.graph.query.TransferableGraphConversion;\r
+import org.simantics.graph.representation.old.OldTransferableGraph1;\r
+import org.simantics.graph.store.IdentityStore;\r
+import org.simantics.graph.store.IdentityStore.ConsistsOf;\r
+\r
+public class PrintReferencesTool {\r
+\r
+    public static void main(String[] args) throws Exception {\r
+        print(new File(args[0]));\r
+    }\r
+    \r
+    public static void print(File input) throws IOException {\r
+        OldTransferableGraph1 tg = (OldTransferableGraph1)\r
+                Files.readFile(input, OldTransferableGraph1.BINDING);\r
+        GraphRefactoringUtils.fixIncorrectRoot(tg.identities);\r
+        IdentityStore idStore = TransferableGraphConversion.extractIdentities(tg);\r
+        printExternals(idStore, idStore.getRoot(""), 0);\r
+    }\r
+\r
+    private static void printExternals(IdentityStore idStore, int cur, int indentation) {\r
+        THashMap<String, ConsistsOf> map = idStore.getChildMap(cur);\r
+        if(map == null)\r
+            return;\r
+        ArrayList<String> names = new ArrayList<String>(map.keySet());\r
+        Collections.sort(names);\r
+        for(String name : names) {\r
+            ConsistsOf co = map.get(name);\r
+            if(!idStore.isNewResource(co.child)) {\r
+                for(int i=0;i<indentation;++i)\r
+                    System.out.print("    ");\r
+                System.out.println(name);\r
+                printExternals(idStore, co.child, indentation+1);\r
+            }\r
+        }\r
+    }\r
+    \r
+}\r