]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling/src/org/simantics/modeling/NewSymbolGroupRequest.java
Sync git svn branch with SVN repository r33366.
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / NewSymbolGroupRequest.java
1 package org.simantics.modeling;\r
2 \r
3 import org.simantics.db.Resource;\r
4 import org.simantics.db.WriteGraph;\r
5 import org.simantics.db.common.request.WriteResultRequest;\r
6 import org.simantics.db.exception.DatabaseException;\r
7 import org.simantics.diagram.stubs.DiagramResource;\r
8 import org.simantics.layer0.Layer0;\r
9 \r
10 public class NewSymbolGroupRequest extends WriteResultRequest<Resource> {\r
11     String name;\r
12     Resource model;\r
13     Resource symbolGroup;\r
14 \r
15     public NewSymbolGroupRequest(String name, Resource model) {\r
16         this.name = name;\r
17         this.model = model;\r
18     }\r
19 \r
20     @Override\r
21     public Resource perform(WriteGraph graph) throws DatabaseException {\r
22         return createNewSymbolGroup(graph, model, name);\r
23     }\r
24     \r
25     public static Resource createNewSymbolGroup(WriteGraph graph, Resource model, String name) throws DatabaseException {\r
26         Layer0 L0 = Layer0.getInstance(graph);\r
27         DiagramResource DIA = DiagramResource.getInstance(graph);\r
28 \r
29         // Symbol group\r
30         Resource symbolGroup = graph.newResource();\r
31         graph.claim(symbolGroup, L0.PartOf, model);    \r
32         graph.claim(symbolGroup, L0.InstanceOf, DIA.SymbolReferenceLibrary);\r
33 \r
34         // Name\r
35         graph.claimLiteral(symbolGroup, L0.HasName, name);\r
36         return symbolGroup;\r
37     }\r
38 }