]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/VariableRepresentation.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / util / VariableRepresentation.java
1 package org.simantics.db.layer0.util;\r
2 \r
3 import java.util.Map;\r
4 \r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.RequestProcessor;\r
7 import org.simantics.db.common.request.UniqueRead;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.layer0.util.SimanticsClipboard.Representation;\r
10 import org.simantics.db.layer0.variable.Variable;\r
11 import org.simantics.db.layer0.variable.Variables;\r
12 import org.simantics.utils.datastructures.hints.IHintContext.Key;\r
13 \r
14 class VariableRepresentation implements Representation {\r
15 \r
16         private String URI;\r
17         \r
18         public VariableRepresentation(String URI) {\r
19                 this.URI = URI;\r
20         }\r
21 \r
22         @Override\r
23         public Key getKey() {\r
24                 return SimanticsKeys.KEY_VARIABLE;\r
25         }\r
26         \r
27         @SuppressWarnings("unchecked")\r
28         @Override\r
29         public <T> T getValue(RequestProcessor processor, Map<String,Object> hints) throws DatabaseException {\r
30                 return (T)processor.syncRequest(new UniqueRead<Variable>() {\r
31                         @Override\r
32                         public Variable perform(ReadGraph graph) throws DatabaseException {\r
33                                 return Variables.getVariable(graph, URI);\r
34                         }\r
35                 });\r
36         }\r
37         \r
38 }