]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph/src/org/simantics/graph/refactoring/PrintReferencesTool.java
Sync git svn branch with SVN repository r33358.
[simantics/platform.git] / bundles / org.simantics.graph / src / org / simantics / graph / refactoring / PrintReferencesTool.java
1 package org.simantics.graph.refactoring;\r
2 \r
3 import gnu.trove.map.hash.THashMap;\r
4 \r
5 import java.io.File;\r
6 import java.io.IOException;\r
7 import java.util.ArrayList;\r
8 import java.util.Collections;\r
9 \r
10 import org.simantics.databoard.Files;\r
11 import org.simantics.graph.query.TransferableGraphConversion;\r
12 import org.simantics.graph.representation.old.OldTransferableGraph1;\r
13 import org.simantics.graph.store.IdentityStore;\r
14 import org.simantics.graph.store.IdentityStore.ConsistsOf;\r
15 \r
16 public class PrintReferencesTool {\r
17 \r
18     public static void main(String[] args) throws Exception {\r
19         print(new File(args[0]));\r
20     }\r
21     \r
22     public static void print(File input) throws IOException {\r
23         OldTransferableGraph1 tg = (OldTransferableGraph1)\r
24                 Files.readFile(input, OldTransferableGraph1.BINDING);\r
25         GraphRefactoringUtils.fixIncorrectRoot(tg.identities);\r
26         IdentityStore idStore = TransferableGraphConversion.extractIdentities(tg);\r
27         printExternals(idStore, idStore.getRoot(""), 0);\r
28     }\r
29 \r
30     private static void printExternals(IdentityStore idStore, int cur, int indentation) {\r
31         THashMap<String, ConsistsOf> map = idStore.getChildMap(cur);\r
32         if(map == null)\r
33             return;\r
34         ArrayList<String> names = new ArrayList<String>(map.keySet());\r
35         Collections.sort(names);\r
36         for(String name : names) {\r
37             ConsistsOf co = map.get(name);\r
38             if(!idStore.isNewResource(co.child)) {\r
39                 for(int i=0;i<indentation;++i)\r
40                     System.out.print("    ");\r
41                 System.out.println(name);\r
42                 printExternals(idStore, co.child, indentation+1);\r
43             }\r
44         }\r
45     }\r
46     \r
47 }\r