--- /dev/null
+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