]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph.db/src/org/simantics/graph/db/WrapperAdvisor.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph.db / src / org / simantics / graph / db / WrapperAdvisor.java
1 package org.simantics.graph.db;\r
2 \r
3 import java.util.Collection;\r
4 \r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.Resource;\r
7 import org.simantics.db.WriteOnlyGraph;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.graph.representation.Root;\r
10 \r
11 public class WrapperAdvisor implements IImportAdvisor2 {\r
12 \r
13     private final IImportAdvisor advisor;\r
14     \r
15     public WrapperAdvisor(IImportAdvisor advisor) {\r
16         this.advisor = advisor;\r
17     }\r
18     \r
19     @Override\r
20     public void redirect(Resource temp) {\r
21         if(advisor instanceof IImportAdvisor2)\r
22                 ((IImportAdvisor2)advisor).redirect(temp);\r
23     }\r
24     \r
25     @Override\r
26     public Resource getTarget() {\r
27         if(advisor instanceof IImportAdvisor2)\r
28                 return ((IImportAdvisor2)advisor).getTarget();\r
29         return null;\r
30     }\r
31     \r
32     @Override\r
33     public Collection<Resource> getRoots() {\r
34         if(advisor instanceof IImportAdvisor2)\r
35                 return ((IImportAdvisor2)advisor).getRoots();\r
36         return null;\r
37     }\r
38     \r
39     @Override\r
40     public Collection<RootInfo> getRootInfo() {\r
41         if(advisor instanceof IImportAdvisor2)\r
42                 return ((IImportAdvisor2)advisor).getRootInfo();\r
43         return null;\r
44     }\r
45     \r
46     @Override\r
47     public Resource analyzeRoot(ReadGraph graph, Root root) throws DatabaseException {\r
48         return advisor.analyzeRoot(graph, root);\r
49     }\r
50 \r
51     @Override\r
52     public Resource createRoot(WriteOnlyGraph graph, Root root) throws DatabaseException {\r
53         return advisor.createRoot(graph, root);\r
54     }\r
55 \r
56     @Override\r
57     public Resource createRoot(WriteOnlyGraph graph, Root root, Resource resource) throws DatabaseException {\r
58         if(advisor instanceof IImportAdvisor2) {\r
59                 return ((IImportAdvisor2)advisor).createRoot(graph, root, resource);\r
60         } else {\r
61                 throw new UnsupportedOperationException();\r
62         }\r
63     }\r
64 \r
65     @Override\r
66     public void beforeWrite(WriteOnlyGraph graph, TransferableGraphImporter process)\r
67             throws DatabaseException {\r
68         if(advisor instanceof IImportAdvisor2)\r
69                 ((IImportAdvisor2)advisor).beforeWrite(graph, process);\r
70     }\r
71 \r
72     @Override\r
73     public void afterWrite(WriteOnlyGraph graph, TransferableGraphImporter process)\r
74             throws DatabaseException {\r
75         if(advisor instanceof IImportAdvisor2)\r
76                 ((IImportAdvisor2)advisor).afterWrite(graph, process);\r
77     }\r
78 \r
79     @Override\r
80     public boolean allowImmutableModifications() {\r
81         if(advisor instanceof IImportAdvisor2)\r
82                 return ((IImportAdvisor2)advisor).allowImmutableModifications();\r
83         else\r
84                 return false;\r
85     }\r
86 \r
87     @Override\r
88     public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent,\r
89             String name) throws DatabaseException {\r
90         if(advisor instanceof IImportAdvisor2)\r
91                 return ((IImportAdvisor2)advisor).createChild(graph, process, parent, name);\r
92         else\r
93                 return process.createChild(graph, parent, null, name);\r
94     }\r
95 \r
96     @Override\r
97     public Resource createChild(WriteOnlyGraph graph, TransferableGraphImporter process, Resource parent, Resource child,\r
98             String name) throws DatabaseException {\r
99         if(advisor instanceof IImportAdvisor2)\r
100                 return ((IImportAdvisor2)advisor).createChild(graph, process, parent, child, name);\r
101         else\r
102                 return process.createChild(graph, parent, child, name);\r
103     }\r
104 \r
105 }\r