--- /dev/null
+package org.simantics.graph.db;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.graph.representation.Root;\r
+\r
+abstract public class AbstractImportAdvisor2 implements IImportAdvisor2 {\r
+ \r
+ private Collection<RootInfo> rootInfo = new ArrayList<RootInfo>();\r
+\r
+ public Collection<Resource> getRoots() {\r
+ ArrayList<Resource> result = new ArrayList<Resource>(rootInfo.size());\r
+ for(RootInfo info : rootInfo) result.add(info.resource);\r
+ return result;\r
+ }\r
+ \r
+ @Override\r
+ public void redirect(Resource temp) {\r
+ }\r
+ \r
+ @Override\r
+ public Collection<RootInfo> getRootInfo() {\r
+ return rootInfo;\r
+ }\r
+ \r
+ public Resource getRoot() {\r
+ if(rootInfo.size() == 1) return rootInfo.iterator().next().resource;\r
+ else throw new IllegalStateException("Expected a single root, got " + rootInfo.size() + " roots.");\r
+ }\r
+ \r
+ protected void addRootInfo(Root root, String name, Resource resource) {\r
+ rootInfo.add(new RootInfo(root, name, resource));\r
+ }\r
+\r
+ public Resource getRoot(String name) {\r
+ for(RootInfo info : getRootInfo())\r
+ if(info.name.equals(name)) return info.resource;\r
+ return null;\r
+ }\r
+ \r
+}\r