]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph.db/src/org/simantics/graph/db/AbstractImportAdvisor2.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph.db / src / org / simantics / graph / db / AbstractImportAdvisor2.java
1 package org.simantics.graph.db;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 \r
6 import org.simantics.db.Resource;\r
7 import org.simantics.graph.representation.Root;\r
8 \r
9 abstract public class AbstractImportAdvisor2 implements IImportAdvisor2 {\r
10         \r
11         private Collection<RootInfo> rootInfo = new ArrayList<RootInfo>();\r
12 \r
13         public Collection<Resource> getRoots() {\r
14                 ArrayList<Resource> result = new ArrayList<Resource>(rootInfo.size());\r
15                 for(RootInfo info : rootInfo) result.add(info.resource);\r
16                 return result;\r
17         }\r
18         \r
19         @Override\r
20         public void redirect(Resource temp) {\r
21         }\r
22         \r
23         @Override\r
24         public Collection<RootInfo> getRootInfo() {\r
25                 return rootInfo;\r
26         }\r
27         \r
28         public Resource getRoot() {\r
29                 if(rootInfo.size() == 1) return rootInfo.iterator().next().resource;\r
30                 else throw new IllegalStateException("Expected a single root, got " + rootInfo.size() + " roots.");\r
31         }\r
32         \r
33         protected void addRootInfo(Root root, String name, Resource resource) {\r
34                 rootInfo.add(new RootInfo(root, name, resource));\r
35         }\r
36 \r
37         public Resource getRoot(String name) {\r
38                 for(RootInfo info : getRootInfo())\r
39                         if(info.name.equals(name)) return info.resource;\r
40                 return null;\r
41         }\r
42         \r
43 }\r