]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Variable.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / evaluator / Variable.java
1 package org.simantics.document.linking.report.evaluator;\r
2 \r
3 import java.util.Map;\r
4 \r
5 import org.eclipse.jface.resource.ImageDescriptor;\r
6 import org.simantics.db.ReadGraph;\r
7 import org.simantics.db.exception.DatabaseException;\r
8 import org.simantics.document.linking.Activator;\r
9 import org.simantics.document.linking.ontology.DocumentLink;\r
10 import org.simantics.document.linking.utils.SourceLinkUtil;\r
11 import org.simantics.objmap.graph.annotations.GraphType;\r
12 import org.simantics.objmap.graph.annotations.RelatedGetValue;\r
13 import org.simantics.objmap.graph.annotations.RelatedSetValue;\r
14 \r
15 \r
16 @GraphType(DocumentLink.URIs.EvaluatorTree_Variable)\r
17 public class Variable extends EvaluatorLeaf implements StringEditableNode{\r
18         \r
19         String variableRef = "#HasName";\r
20         \r
21         public Variable() {\r
22                 \r
23         }\r
24         \r
25         public Variable(String variableRef) {\r
26                 this.variableRef = variableRef;\r
27         }\r
28         \r
29         public void setVariableRef(String variableRef) {\r
30                 this.variableRef = variableRef;\r
31         }\r
32         \r
33         public String getVariableRef() {\r
34                 return variableRef;\r
35         }\r
36         \r
37         @Override\r
38         public String getValue(ReadGraph graph, org.simantics.db.layer0.variable.Variable variable, Map<Object, Object> context) throws DatabaseException {\r
39                 if (context.containsKey(variableRef))\r
40                         return SourceLinkUtil.getValueString(context.get(variableRef));\r
41                 try {\r
42                         org.simantics.db.layer0.variable.Variable propertyVar = PredefinedVariables.getInstance().getVariable(graph, variableRef, null, variable);\r
43                         if (propertyVar.getRepresents(graph) == null)\r
44                                 return null;\r
45                         return SourceLinkUtil.getValueString(propertyVar.getValue(graph));\r
46                 } catch (Exception e) {\r
47                         return null;\r
48                 }\r
49         }\r
50         \r
51         \r
52         \r
53 \r
54         @Override\r
55         public String toString() {\r
56                 return variableRef;\r
57         }\r
58         \r
59         @RelatedGetValue(DocumentLink.URIs.EvaluatorTree_HasValue)\r
60         @Override\r
61         public String getValue() {\r
62                 return variableRef;\r
63         }\r
64         \r
65         \r
66         @Override\r
67         public String setValue(String value) {\r
68                 if (value.length() == 0)\r
69                         return "Variable reference cannot be empty";\r
70                 variableRef = value;\r
71                 return null;\r
72         }\r
73         \r
74         @RelatedSetValue(DocumentLink.URIs.EvaluatorTree_HasValue)\r
75         public void _setValue(String value) {\r
76                 variableRef = value;\r
77         }\r
78         \r
79         \r
80         @Override\r
81         public EvaluatorItem copy() {\r
82                 return new Variable(variableRef);\r
83         }\r
84         \r
85         @Override\r
86         public ImageDescriptor getImage() {\r
87                 return Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/database_go.png");\r
88         }\r
89         \r
90 \r
91 }\r